[Moscow.pm] Очень медленное нахождение элемента в массиве
Victor Efimov
victor на vsespb.ru
Пт Ноя 25 10:27:17 PST 2016
столько писем в треде и ни одного нормального PoC тест-кейза, где
показывается как оно тормозит 5 сек, без всяких cpan модулей и с ip
адресами нагенерированными в этом же кейзе.
25 ноября 2016 г., 21:09 пользователь Naim Shafiev via Moscow-pm
<moscow-pm на pm.org> написал:
> да только на версии с grep, но там в modern perl telegram чате петрусевич
> побольше чем я занялся ускорение .
> вот результаты
> Anton Petrusevich:
> грубо говоря так: когда while( $ipn < $ipn->broadcast ), то вайл занимает
> 2.2сек; когда my $bc = $ipn->broadcast; while ($ipn < $bc) {, то 1.3сек;
> когда без модуля, чисто use Socket/inet_ntoa/inet_aton, то ... 0.293ms
>
>
> On Nov 25, 2016 9:17 PM, "Denis Evdokimov via Moscow-pm" <moscow-pm на pm.org>
> wrote:
>>
>> Данных катастрофически не хватает.
>> Судя по первому письму профайлер запускался, но только на версии с grep.
>>
>> Предположу, что map-версия выглядит примерно так:
>> foreach my $iponly (@bla_bla_bla)
>> {
>> my %ips = map { $_ => 1 } @ips;
>> if (not exists($ips{$iponly} ))
>> {
>> return $iponly;
>> }
>> }
>>
>>
>> тогда её нужно переписать так:
>> my %ips = map { $_ => 1 } @ips;
>> foreach my $iponly (@bla_bla_bla)
>> {
>> if (not exists($ips{$iponly} ))
>> {
>> return $iponly;
>> }
>> }
>>
>>
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>>
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
Подробная информация о списке рассылки Moscow-pm