2013/6/17 Ruslan Zakirov <r...@bestpractical.com>: > > > > 2013/6/17 Vladimir Timofeev <vovk...@gmail.com> >> >> 2013/6/17 Ilya Chesnokov <chesnokov.i...@gmail.com>: >> > >> > 16 июня 2013 г., 8:44 пользователь Иван Бессарабов <i...@bessarabov.ru> >> > написал: >> > >> >> > Мой типичный boilerplate такой: >> >> > ... >> >> > use autodie qw<:all>; >> >> >> >> Вот тут пишут что это сильно замедляет работу: >> >> >> >> >> >> >> >> http://blogs.perl.org/users/vyacheslav_matjukhin/2013/06/dont-copy-use-autodie-in-every-module.html >> >> >> > >> > Насколько я понял, не работу, а скорость запуска приложения. >> >> Ага, тогда померяйте сами ;-) >> #!perl >> use Benchmark ':all'; >> >> { >> use autodie; >> timethese(-2, { 'autodie on' => sub { chdir '/tmp' } }); >> } >> >> { >> no autodie; >> timethese(-2, { 'autodie off' => sub { chdir '/tmp' } }); >> } >> >> У меня результат такой: >> Benchmark: running autodie on for at least 2 CPU seconds... >> autodie on: 3 wallclock secs ( 1.96 usr + 0.15 sys = 2.11 CPU) @ >> 155649.29/s (n=328420) >> Benchmark: running autodie off for at least 2 CPU seconds... >> autodie off: 2 wallclock secs ( 0.29 usr + 1.78 sys = 2.07 CPU) @ >> 3220760.39/s (n=6666974) >> > > Нужно мерять: > > no autodie; chdir '/tmp' or die "can't change dir"; > > А иначе получается, что сравниваем код с проверкой ошибок и без проверки. Я > результат вам и без бенчмарка скажу.
Я не очень доверяю предположениям такого рода, уж извините ;-) Поэтому вот скрипт и результаты (я даже добавил реальную смену директорий на всякий случай): #!perl use Benchmark ':all'; my $dir = '/tmp'; sub dir { $dir eq '/tmp' ? '/usr' : '/tmp'; } { use autodie; timethese(-2, { 'autodie on' => sub { chdir dir(); } }); } { no autodie; timethese(-2, { 'autodie off' => sub { chdir dir() or die "Can't: $!"; } }); } Benchmark: running autodie on for at least 2 CPU seconds... autodie on: 3 wallclock secs ( 1.92 usr + 0.17 sys = 2.09 CPU) @ 149655.50/s (n=312780) Benchmark: running autodie off for at least 2 CPU seconds... autodie off: 1 wallclock secs ( 1.18 usr + 0.89 sys = 2.07 CPU) @ 1755538.65/s (n=3633965) > >> >> > >> >> >> >> 13 июня 2013 г., 14:14 пользователь Maxim Vuets <maxim.vu...@gmail.com> >> >> написал: >> >> >> >>> 2013/6/13 Ruslan Zakirov <r...@bestpractical.com>: >> >>> > >> >>> > 2013/6/13 Maxim Vuets <maxim.vu...@gmail.com> >> >>> >> >> >>> >> 2013/6/13 Dmitry L. <dim0...@gmail.com>: >> >>> >> > Привет! >> >>> >> > >> >>> >> > Возник вопрос, а где правильно (не с точки зрения синтаксиса, а >> >>> >> > вообще) >> >>> >> > и >> >>> >> > нагляднее писать use utf8 в файле с модулем? >> >>> >> > 1. до package My::Module; >> >>> >> > 2. после package My::Module; >> >>> >> >> >>> >> Прагма utf8 имеет лексическую область видимости. Объявите до --- >> >>> >> будет >> >>> >> на файл. После --- на пакет. >> >>> > >> >>> > >> >>> > По этому все лексические прагмы нуно писать до пакета, в том числе >> >>> > strict, >> >>> > warnings... Один файл - один пакет - это хорошо, но иногда надо два >> >>> > и >> >>> > более >> >>> > и вот тогда может быть неприятный сюрприз. >> >>> >> >>> Говоря в общем, да, я согласен (-: Мой типичный boilerplate такой: >> >>> >> >>> use strict; >> >>> use warnings; >> >>> use autodie qw<:all>; >> >>> use utf8; >> >>> use open qw<:utf8 :std>; >> >>> >> >>> >> >>> >> >>> >> >>> ############################################################################## >> >>> package My::Package; >> >>> >> >>> use Something; >> >>> ... >> >>> -- >> >>> Moscow.pm mailing list >> >>> moscow-pm@pm.org | http://moscow.pm.org >> >> >> >> >> >> >> >> -- >> >> Moscow.pm mailing list >> >> moscow-pm@pm.org | http://moscow.pm.org >> >> >> > >> > >> > >> > -- >> > Best regards, >> > Ilya Chesnokov >> > >> > -- >> > Moscow.pm mailing list >> > moscow-pm@pm.org | http://moscow.pm.org >> > >> >> >> >> -- >> Vladimir Timofeev <vovk...@gmail.com> >> -- >> Moscow.pm mailing list >> moscow-pm@pm.org | http://moscow.pm.org > > > > > -- > Best regards, Ruslan. > > -- > Moscow.pm mailing list > moscow-pm@pm.org | http://moscow.pm.org > -- Vladimir Timofeev <vovk...@gmail.com> -- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org