Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re^3: What's the perl5's future?

by marioroy (Prior)
on Sep 19, 2016 at 01:56 UTC ( [id://1172089]=note: print w/replies, xml ) Need Help??


in reply to Re^2: What's the perl5's future?
in thread What's the perl5's future?

Update: For the example script, there is no noticeable difference when comparing Perl v5.20+ against cperl v5.22+. I had compared Perl installed on the OS; Perl 5.18.2 (Mac OS X 10.11.6) and Perl 5.16.3 (CentOS 7.2) against cperl 5.22c. Thank you dave_the_m for catching this.

Thank you for cperl, rurban. I entered a demonstration running 25% to 33% faster with cperl depending on the platform.

Re^3: use threads for dir tree walking really hurts

Furthermore, the optional modules for MCE and MCE::Shared work without a glitch. Unless PDL is present, MCE and MCE::Shared will use Sereal 3.008 or later for serialization if available on the system. Storable is used otherwise. The IO::FDPass module is beneficial for passing file descriptors to the shared manager process. This applies to MCE::Shared::Condvar, MCE::Shared::Handle, and MCE::Shared::Queue.

1. Canary-Stability-2011 (required by IO::FDPass) 2. IO-FDPass-1.1 (optional, used automatically by MCE::Shared) 3. Sereal-Decoder-3.015 (optional, used by MCE and MCE::Shared) 4. Sereal-Encoder-3.015 (optional, ditto) 5. Sereal-3.015 (optional, ditto) 6. MCE-1.805 7. MCE-Shared-1.804 (add-on module for MCE)

The modules listed above work flawlessly with perl11/cperl Github branches maint-5.22c and maint-5.24c. Threads is not required to run MCE or MCE::Shared. I built cperl with threads support and that works too.

./Configure -Dprefix=/opt/cperl-5.22c -sder -Dusethreads -Dusecperl -A +ccflags=-msse4.2 ./Configure -Dprefix=/opt/cperl-5.24c -sder -Dusethreads -Dusecperl -A +ccflags=-msse4.2

Thank you for making Perl run faster.

Warm regards, Mario.

Replies are listed 'Best First'.
Re^4: What's the perl5's future?
by dave_the_m (Monsignor) on Sep 19, 2016 at 08:04 UTC
    I entered a demonstration running 25% to 33% faster with cperl
    I see no such performance difference when comparing bleadperl with the current cperl git head. Running perf stat -r 30, I get the following results:
    perl-5.24.0 6101.313876 task-clock (msec) 18,547,679,958 cycles bleadperl, v5.25.4-176-g23e15e7 6027.767495 task-clock (msec) 18,321,742,652 cycles cperl, v5.23.0-3278-gdff4721 6046.706723 task-clock (msec) 18,380,297,957 cycles
    All the above were built with -des -Duseithreads -Accflags=-msse4.2 and with all the modules you listed installed, and were run against the script shown in your link, on a directory hierarchy containing 250932 files.

    Dave.

      And I want to say thank you, dave_the_m, for maintaining some cool and objectivity. I honestly wasn't sure what to think after reading—Re^2: What's the perl5's future?—since I enjoy a good rant and the guilty pleasure of indignation by proxy. Then I went and read the email threads' backstory. o_O I would leave or cut down on participation if I had to work with that kind of pointless, unproductive, toxic flagellation. I'm grateful you didn't do so.

      Thank you dave_the_m. For the example script, the performance difference is seen with Perl 5.20+ versus the OS installed Perl 5.18.2 on Mac OS X 10.11.6 and Perl 5.16.3 on CentOS 7.2. I thought the performance increase was due to cperl 5.22c. I tried Perl 5.20 and Perl 5.22. Both run as fast as cperl.

      Hurray for Perl 5.20 and later releases.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1172089]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others surveying the Monastery: (2)
As of 2024-04-20 04:43 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found