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: