First, I was forced to use Matlab for a while (I used it before moving
perl and PDL). I had forgotten how cubersome it is to express
algorithms compared to PDL. Cheers to all PDL developers!!

While ago (indeed with using Devel::NYTProf) I noticed that ->slice()
is much faster than NiceSlice and nslice:

use PDL;
use PDL::NiceSlice;
use Benchmark qw(:all);

$count = 100000;
$a = zeroes(100);
$results = timethese($count,
             {
             'slice' => sub { my $b = $a->slice("5:50"); },
             'NiceSlice' => sub { my $b = $a(5:50); },
             'nslice' => sub { my $b = $a->nslice([5,50]); },
             },
             'none'
    );
cmpthese( $results ) ;


              Rate NiceSlice    nslice     slice
NiceSlice  48544/s        --      -11%      -75%
nslice     54348/s       12%        --      -72%
slice     192308/s      296%      254%        --

Also (a trivial thing) growing a piddle is very expensive,
preallocating is much faster, but that is trivial. Perhaps worth of
emphasizing in documentation.

Cheers,
Kaj

_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl

Reply via email to