ocehb: (Default)
[personal profile] ocehb

1. 
my $i; for ($i = 0; $i < scalar @array; $i++) { last if ($array[$i] == $value); }


2. 
my $i = 0; foreach (@array) { last if ($_ == $value); $i++; }


3. 
my $i = 0; map { $_ == $value ? last : $i++ } @array; }


Проверка:

# perl -MBenchmark=timethese -de0
  DB<1> @array = map { int rand 10240 } 1..10240
  DB<2> $value = 6000
  DB<3> timethese (10_000,{'A' => q|my $i; for ($i = 0; $i < scalar @array; $i++) { last if ($array[$i] == $value); }|,\
                           'B' => q|my $i = 0; foreach (@array) { last if ($_ == $value); $i++; }|,\
                           'C' => q|my $i = 0; map { $_ == $value ? last : $i++ } @array;|})
Benchmark: timing 10000 iterations of A, B, C...
         A: 56 wallclock secs (46.91 usr +  0.02 sys = 46.93 CPU) @ 213.08/s (n=10000)
         B: 36 wallclock secs (31.43 usr +  0.01 sys = 31.44 CPU) @ 318.07/s (n=10000)
         C: 35 wallclock secs (35.03 usr +  0.00 sys = 35.03 CPU) @ 285.47/s (n=10000)


Date: 2006-05-19 06:26 am (UTC)
From: [personal profile] alll
Да ты никак "перл кукбук для гиков" замутить решил? :)

Date: 2006-05-19 06:45 am (UTC)
From: [personal profile] alll
вот и я говорю...

Profile

ocehb: (Default)
ocehb

January 2021

S M T W T F S
     12
345 6789
10111213141516
17181920212223
24252627282930
31      

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 8th, 2026 11:59 am
Powered by Dreamwidth Studios