[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Perl: эффективная буферизация



On Mon, Sep 26, 2005 at 09:56:58AM +0400, Alexandra N. Kossovsky wrote:

> Я вообще-то подозреваю, что sysread/syswrite -- это интерфейс к read(2)
> & write(2).

Ну в документации к sysread/syswrite это прямым текстом говорится.

> Почти никакой буферизации при этом нет (буферизация может 
> быть на уровне ядра, но пользователю это обычно неинтересно). 
> fsync(3) имеет смысл только для потоков полученных fopen(3).
> 
> Что же касается скорости работы, читать/писать по мегабайту -- не самый
> комфортный для ядра режим. Неудивительно, что когда вы через shell'овское
> перенаправление включаете libc'шную буферизацию, всё начинает работать
> лучше.
> Видимо, следует повторить рекомендацию пользоваться буферизацией из libc,
> а не изобретать велосипед самостоятельно. Для этого, как уже сказано,
> в perl стоит использовать read/print.

Да пробовал я и это, ничего не изменилось. И потом, read имеет те же
самые аргументы, что и sysread, read тоже пишет в какой-то скаляр, и ему
тоже надо указывать количество считываемых байтов. Или пару read/print
нужно использовать как-то по-другому?


-- 
Best regards,
Timur Elzhov



Reply to: