[Moscow.pm] Модули для работы со временем
Андрей П. Ковбович
akovbovich на gmail.com
Сб Окт 26 16:05:45 PDT 2013
Да смысла приводить бенчмарк нету. Вот здесь как раз приводится рецепт:
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 <mons на cpan.org> написал:
> Если у тебя 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, Андрей П. Ковбович <akovbovich на gmail.com> 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
> > moscow-pm на pm.org | http://moscow.pm.org
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20131027/06ea1628/attachment-0001.html>
Подробная информация о списке рассылки Moscow-pm