отличный однострочник, спасибо 27.10.2013, 03:06, "Андрей П. Ковбович" <[email protected]>: > Да смысла приводить бенчмарк нету. Вот здесь как раз приводится рецепт: > http://www.effectiveperlprogramming.com/2010/05/comparing-stringish-dates-numerically/ > > Единственно, в бенчмарке я погорячился с использованием регекспа для парсинга > даты так как на самом деле быстрее всего substr: > > perl -MBenchmark > -wE'my$d="27.06.2013";my$r2=qr/^(\d{2})\.(\d{2})\.(\d{4})$/;timethese(-1,{substr=>sub{my($dd,$mm,$yy)=(substr($d,0,2),substr($d,3,2),substr($d,6,4));my$dt="$yy-$mm-$dd"},rx=>sub{$d=~/$r2/;my$dt="$3-$2-$1"},split=>sub{my($dd,$mm,$yy)=split > m|\.|,$d;my$dt="$yy-$mm-$dd"}});' > Benchmark: running rx, split, substr for at least 1 CPU seconds... > rx: 2 wallclock secs ( 1.05 usr + 0.00 sys = 1.05 CPU) @ > 327679.05/s (n=344063) > split: 2 wallclock secs ( 1.02 usr + 0.01 sys = 1.03 CPU) @ > 607349.51/s (n=625570) > substr: 0 wallclock secs ( 1.08 usr + 0.00 sys = 1.08 CPU) @ > 980238.89/s (n=1058658) > > 27 октября 2013 г., 2:44 пользователь Mons Anderson <[email protected]> написал: >> Если у тебя 2 строки формата %Y-%m-%d %H:%M:%S, то быстрее чем cmp/lt/gt/eq >> у тебя никак не получится. >> даже есть сделать вызов XS, и в нем memcmp, то получается как-то так: >> >> lt: 6354176.17/s >> cmp: 6062612.68/s >> xs: 4580193.05/s >> >> А вообще приведи бенчмарк целиком. >> >> On 26.10.2013, at 23:33, Андрей П. Ковбович <[email protected]> wrote: >> >>> Какой модуль или способ сейчас считается самым быстрым, чтобы сравнить две >>> даты формата YYYY-mm-dd HH:MM::SS? Как уложиться в 1 микросекунду? >>> >>> Benchmark: running Class::Date, Date::Manip, DateTime, Time::Piece for at >>> least 1 CPU seconds... >>> Class::Date: 0 wallclock secs ( 0.89 usr + 0.13 sys = 1.02 CPU) @ >>> 13175.49/s (n=13439) >>> Date::Manip: 1 wallclock secs ( 1.09 usr + 0.01 sys = 1.10 CPU) @ >>> 407.27/s (n=448) >>> DateTime: 1 wallclock secs ( 1.03 usr + 0.00 sys = 1.03 CPU) @ >>> 10437.86/s (n=10751) >>> Time::Piece: 1 wallclock secs ( 1.01 usr + 0.00 sys = 1.01 CPU) @ >>> 179293.07/s (n=181086) >> >>> -- >>> Moscow.pm mailing list >>> [email protected] | http://moscow.pm.org >> >> -- >> Moscow.pm mailing list >> [email protected] | http://moscow.pm.org > > , > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org
-- С уважением Николай Мишин -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
