[Moscow.pm] Сравнение языков
Михаил Монашёв
postmaster на softsearch.ru
Вт Фев 10 04:33:37 PST 2015
Здравствуйте, vividsnow.
> perl+pdl:
> ~$ /usr/bin/time -f 'mem: %MKb' perl -MPDL::LiteF -MBenchmark=countit -e '
> my $s = sequence long, 1e7;
> printf "time: %dms sum: %d\n", 1e3/countit(1, sub { $s->dsum })->iters, $s->dsum'
Поставил Strawberry Perl с PDL и запустил вот этот код:
#!/usr/bin/perl
use strict;
use warnings;
use PDL::LiteF;
use Benchmark;
my $s = sequence long, 1e7;
printf "time: %dms sum: %d\n", 1e3/Benchmark::countit(1, sub { $s->dsum })->iters, $s->dsum;
C:\Temp>perl 1.pl
time: 26ms sum: 49999995000000
занимает 47.7Mb оперативки и грузит только одно ядро.
И второй вариант затестил:
#!/usr/bin/perl
use strict;
use warnings;
use Benchmark qw/ timethese /;
use List::Util qw/ sum /;
use integer;
my @arr = 0 .. 10_000_000 - 1;
timethese(10, { FUNC => sub { sum @arr } });
C:\Temp>perl 2.pl
Benchmark: timing 10 iterations of FUNC...
FUNC: 2 wallclock secs ( 2.00 usr + 0.00 sys = 2.00 CPU) @ 5.01/s (n=10)
т.е. где-то 200ms
Памяти занимает 641Mb и грузит только одно ядро.
--
С уважением,
Михаил mailto:postmaster на softsearch.ru
Подробная информация о списке рассылки Moscow-pm