Has anyone ever looked into switching from source filters for NiceSlice to something built on Devel::Declare (or similar)? I'm not sure about the performance impacts, but it might help at compile time. In addition, there seems to be a consensus within the Perl community that that is the most robust, modern method of extending the language.
I don't know enough about the internals of PDL or Devel::Declare to suggest anything; just a question. On Wed, May 22, 2013 at 10:16 AM, Chris Marshall <[email protected]> wrote: > There are two issues with PDL::NiceSlice performance: > > (1) compile time with the source filter > (2) execution time (it calls nslice() under the hood) > > Part of the PDL::NiceSlice work in progress and planned > to be completed for PDL3 is the ability to pre-compile > source files which avoids compile time delays which > can be significant for large source files. > > The second part is the rework of nslice() to not call > slice() to do its work. In fact, it seems more reasonable > to have slice() call nslice(). > > --Chris > > > On Wed, May 22, 2013 at 4:19 AM, Kaj Wiik <[email protected]> wrote: >> 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 _______________________________________________ Perldl mailing list [email protected] http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
