Re: Функционал и интерфейс
Hello!
On Monday 16 March 2009 20:48:44 Покотиленко Костик wrote:
> > Про потребляемую память забываем.
>
> И яркий пример тому тот же spamassassin. Он одновременно может только 5
> потоков обрабатывать, как написано в документации, "unless you know what
> you're doing".
А что, все программы на С умеют работать с тысячами потоков? Интереснее работа
с событиями в тикле, к примеру, когда не требуется плодить тучу потоков, чтоб
одновременно снимать данные, скажем, с десятка цисок.
> Вы правы, когда говорите, что
> - нет смысла экономить килобайты и мегабайты памяти, когда речь идёт о
> ПО работающем с единственном экземпляре, т.к. память дешёвая;
> - нет смысла оптимизировать тысячи и сотни тысяч MIPS'ов в процедуре,
> которая выполняется раз в относительно большой период времени, т.к. Вы
> сэкономите не больше секунды.
И в чем заключается "экономия"?
Например, работа со строками на С без использования специальных библиотек
значительно менее эффективна, чем в скриптовых языках. Попробуйте написать
программу на С, которая по обработке регекспов обгонит перловый скрипт.
Ну, возьмем другой пример - сжатие/распаковка данных. Лично я предпочитаю
делать расширения к SQLite, чтобы можно было пользоваться как из тикля, так и
из шелла, в данном случае используем системную zlib, в итоге получаем:
$ cat compress.c |wc -l
120
И это с комментариями и инструкциями по сборке! И в моем полном распоряжении
эффективный инструмент, доступный как из программы, так и в консоли. Плюс
SQLiteMan, написанный С++, и некоторые другие проекты пользуются этим и
другими модулями, при том, что я при написании кода могу совершенно не
беспокоиться, на чем будет сделано клиентское приложение. Вот это и есть
эффективность (оптимизируем именно то, что нуждается в оптимизации) плюс
повторное использование кода. Ваши же десятки и сотни килобайт кода, который
годится только для одного вашего проекта, никто и читать не станет, проще
заново написать.
Best regards.
Reply to: