Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Быстродействие


Автор: Throne 21.7.2006, 16:03
Подскажите, что будет быстрее работать: громоздкая на простая или компактная но очень сложная программа?
Просто думаю писать код "в лоб" или долго и мучительно думая. 

Автор: nerezus 21.7.2006, 18:06
Быстрее будет программа, написанная без всяких BlackMagic, которую в перле почему то очень многие любят ))
А быстрее она будет потому, что на отладку будет затрачено меньше времени.

А основные тормоза - это работа с гуем/файлами/сетью/БД/etc.

И вообще: http://rsdn.ru/article/philosophy/Optimization.xml  

Автор: Throne 21.7.2006, 19:01
Почитал статью, очень интересно. Значить буду строчить строки кода smile . Кстати код размещать лучше в нескольких файлах или в одном? 

Автор: nerezus 21.7.2006, 21:11
Цитата

Кстати код размещать лучше в нескольких файлах или в одном? 
 Как тебе удобнее, так и делай.

Если ты думаешь о скорости обработки каждого из вариантов, то снова перечитай статью по ссылке. 

Автор: Throne 21.7.2006, 23:41
Хм. Удобней в 2 сотнях файлов. тока вот... есть проблемы. То по чему я учусь весьма обрезанное руководство. Следовательно есть следующие трудности:
1. Как открыть файл в перл?
2. Как динамически изменить содержимое (в начале каждой строки вставить print " в конце \n";) и вставить его в определённое место кода? 

Автор: nerezus 22.7.2006, 08:30
1. perldoc -f open
2. Вообще perl -e "$a = '11'; $b = '22'; $c = '33'; print $a.$b.$c; ". Но зачем? 

Автор: Throne 23.7.2006, 02:21
Вобщем можешь написать пример как содержимое файла пихнуть в переменную. 

Автор: nerezus 23.7.2006, 07:38
perl -e " open F, 'c:\boot.ini'; @a = <F>; $s = join(/ /, @a); print $s; " 

Автор: nitr 23.7.2006, 12:24
Вот ещё к примеру, данный кусок можно сократить ;)
open F, 'c:\boot.ini'; @a = <F>; $s = join(/ /, @a); print $s;
на
Код
    ...
    open my $fl, '<', $file;
    local $/;
    my $content = <$fl>;
    close $fl;
    ...

это если в теле скрипта, а так без разницы ;) , но иногда лучше сразу работать с циклом =)
Код

while(<$fl>) {
    ...
}
 

Автор: Throne 23.7.2006, 14:12
Если чесно че-то я не догнал...
nitr, можете по конкретнее сказать где писать путь к файлу (на сервере) и в какую переменную в конце концов он сохраняецца. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)