Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Andrew Degtiariov                    2:5020/400     07 Oct 2003  13:46:43
 To : Andrew Degtiariov
 Subject : Re: оптимизация
 -------------------------------------------------------------------------------- 
 
 Вот, чтобы не было неясностей:
 
 ad@siena:ad>cat test.pl 
 use strict;
 use Net::Netmask qw();
 use Benchmark;
  
 use constant IP_ADDR => '127.0.0.1';
 use constant NETWORK => '127.0.0.0/8';
  
 
 sub matchip{
   my $ip = shift;
   if($ip =~/\./){
     $ip = unpack("N", pack("C4", split(/\./, $ip)));
   }
   for(@_){
     my $net = $_;
     my($quad, $bits) = m!^(\d+\.\d+\.\d+\.\d+)(?:/(\d+))?!g;
     my $matchbits = 32 - ($bits || 32);
     my $int = unpack("N", pack("C4", split(/\./, $quad)));
     my $mask = 2**32-2**$matchbits;
     if(($int & $mask) == ($ip & $mask)){
       return 1;
     }
   }
   return 0;
 }
 
 Benchmark::cmpthese(1000, {
         'KPetrenko' => sub {
                 my $flag = main::matchip IP_ADDR, NETWORK;
         },
         'Net::Netmask' => sub {
                 my $block = new Net::Netmask NETWORK;
                 my $flag = $block->match(IP_ADDR);
         }
 });
 
 ad@siena:ad>>perl test.pl
 Benchmark: timing 1000 iterations of KPetrenko, Net::Netmask...
  KPetrenko:  0 wallclock secs ( 0.13 usr +  0.00 sys =  0.13 CPU) @ 7529.41/s
 (n=1000)
             (warning: too few iterations for a reliable count)
 Net::Netmask:  0 wallclock secs ( 0.35 usr +  0.00 sys =  0.35 CPU) @ 2844.44/s 
 (n=1000)
             (warning: too few iterations for a reliable count)
                Rate Net::Netmask    KPetrenko
 Net::Netmask 2844/s           --         -62%
 KPetrenko    7529/s         165%           --
 ad@siena:ad>
 
 -- 
 Andrew Degtiariov 
 DA-RIPE
 --- ifmail v.2.15dev5
  * Origin: Astral-Kiev (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 оптимизация   Konstantin Petrenko   06 Oct 2003 18:06:49 
 Re: оптимизация   Vladimir Podgorny   06 Oct 2003 15:40:52 
 Re: оптимизация   Vladimir Podgorny   06 Oct 2003 15:47:24 
 оптимизация   Konstantin Petrenko   07 Oct 2003 08:05:49 
 Re: оптимизация   Vladimir Podgorny   07 Oct 2003 12:06:10 
 Re: оптимизация   Andrew Degtiariov   07 Oct 2003 12:14:33 
 Re: оптимизация   Vladimir Podgorny   07 Oct 2003 12:35:48 
 Re: оптимизация   Andrew Degtiariov   07 Oct 2003 13:11:03 
 Re: оптимизация   Vladimir Podgorny   07 Oct 2003 13:29:54 
 Re: оптимизация   Andrew Degtiariov   07 Oct 2003 13:43:53 
 Re: оптимизация   Andrew Degtiariov   07 Oct 2003 13:46:43 
Архивное /ru.perl/7561dd994c6c.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional