[Moscow.pm] Очень медленное нахождение элемента в массиве

Eugene Kaltashkin zhecka на gmail.com
Пт Ноя 25 10:29:40 PST 2016


Етить. А Casus то тут каким боком :)

25 нояб. 2016 г. 9:10 PM пользователь "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
>
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20161125/948fb7c6/attachment.html>


Подробная информация о списке рассылки Moscow-pm