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

Naim Shafiev shafiev на gmail.com
Пт Ноя 25 10:09:43 PST 2016


да только на версии с 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
>
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20161125/16f4a5ae/attachment.html>


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