Re: fprintf && write
- From
- Lev Walkin ()
- To
- Andrey Melnikov ()
- Date
- 2003-06-06T14:12:52Z
- Area
- RU.UNIX.PROG
From: Lev Walkin <vlm@netli.com>
Andrey Melnikov wrote:
> Hello Valentin!
>
> 06 Jun 03 01:09, Valentin Nechayev wrote to Andrey Melnikov:
> VN> From: Valentin Nechayev <netch@segfault.kiev.ua>
>
>
> >>>> Andrey Melnikov wrote:
>
> LW>>> Что это за бред? Процедура отрезания куска стека НЕ занимает
> LW>>> дополнительного времени. Процедура подчистки стека НЕ занимает
> LW>>> дополнительного времени.
> AM>> Только за счет того, что gcc не использует пару enter/leave.
> VN> А использовал бы - время бы терялось? ;)))))
> пара enter/leave - получилась ужастно дорогая :) Поэтому никто не стал ее
> пользовать.
Как различается скорость исполнения функции с enter/leave, у которой
есть одна локальная переменная, от функции с enter/leave, у которой
килобайт локальных переменных на стеке?
> AM>> Но как только
> AM>> я захочу заливать этот буфер нулями при создании - мне там нарисуют
> AM>> кучу кода, который на мои 324 тысячи вызовов будет уже довольно дорог.
>
> VN> Зачем тебе чистить буфер?
> Незачем. Это был простейший пример.
Ага, теперь все встало на свои места. Оказывается, если локальный буфер
чистить, то это получится медленнее, чем если есть глобальный буфер,
и его при этом не чистить. Все понятно. Конечно, значит локальные буфера
сосут, раз если их чистить, то получается медленнее, чем глобальные,
которых чистить не нужно. Вопросов больше не имею :)
> VN> А если локальные переменные надо устанавливать в какое-то значение,
> VN> то от этого никуда не денешься.
Точно, как-будто логика работы может требовать установку локальных
переменных в какое-то определенное значение, с последующим их
спользованием, и, одновременно с этим, позволять не рецинициализировать
глобальные буфера.
--
Lev Walkin
vlm@netli.com
--- ifmail v.2.15dev5
* Origin: Netli, Inc. (2:5020/400)