[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