<div dir="ltr"><div>Да смысла приводить бенчмарк нету. Вот здесь как раз приводится рецепт:</div><div><a href="http://www.effectiveperlprogramming.com/2010/05/comparing-stringish-dates-numerically/">http://www.effectiveperlprogramming.com/2010/05/comparing-stringish-dates-numerically/</a></div>
<div><br></div><div>Единственно, в бенчмарке я погорячился с использованием регекспа для парсинга даты так как на самом деле быстрее всего substr:</div><div><br></div><div><div>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"}});'</div>
<div>Benchmark: running rx, split, substr for at least 1 CPU seconds...</div><div>        rx:  2 wallclock secs ( 1.05 usr +  0.00 sys =  1.05 CPU) @ 327679.05/s (n=344063)</div><div>     split:  2 wallclock secs ( 1.02 usr +  0.01 sys =  1.03 CPU) @ 607349.51/s (n=625570)</div>
<div>    substr:  0 wallclock secs ( 1.08 usr +  0.00 sys =  1.08 CPU) @ 980238.89/s (n=1058658)</div></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">27 октября 2013 г., 2:44 пользователь Mons Anderson <span dir="ltr"><<a href="mailto:mons@cpan.org" target="_blank">mons@cpan.org</a>></span> написал:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Если у тебя 2 строки формата %Y-%m-%d %H:%M:%S, то быстрее чем cmp/lt/gt/eq у тебя никак не получится.<br>
даже есть сделать вызов XS, и в нем memcmp, то получается как-то так:<br>
<br>
lt: 6354176.17/s<br>
cmp: 6062612.68/s<br>
xs: 4580193.05/s<br>
<br>
А вообще приведи бенчмарк целиком.<br>
<div class="HOEnZb"><div class="h5"><br>
On 26.10.2013, at 23:33, Андрей П. Ковбович <<a href="mailto:akovbovich@gmail.com">akovbovich@gmail.com</a>> wrote:<br>
<br>
> Какой модуль или способ сейчас считается самым быстрым, чтобы сравнить две даты формата YYYY-mm-dd HH:MM::SS? Как уложиться в 1 микросекунду?<br>
><br>
> Benchmark: running Class::Date, Date::Manip, DateTime, Time::Piece for at least 1 CPU seconds...<br>
> Class::Date:  0 wallclock secs ( 0.89 usr +  0.13 sys =  1.02 CPU) @ 13175.49/s (n=13439)<br>
> Date::Manip:  1 wallclock secs ( 1.09 usr +  0.01 sys =  1.10 CPU) @ 407.27/s (n=448)<br>
>   DateTime:  1 wallclock secs ( 1.03 usr +  0.00 sys =  1.03 CPU) @ 10437.86/s (n=10751)<br>
> Time::Piece:  1 wallclock secs ( 1.01 usr +  0.00 sys =  1.01 CPU) @ 179293.07/s (n=181086)<br>
</div></div><div class="HOEnZb"><div class="h5">> --<br>
> Moscow.pm mailing list<br>
> <a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
<br>
--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
</div></div></blockquote></div><br></div>