Hi all!
After my last update about optimising Games-Solitaire-Verify, I made some
progress. My first attempt at optimisation was to make
https://github.com/fglock/Perlito which is a Perl 5 to several other backends
compiler compatible with the Games-Solitaire-Verify code . This was quite a lot
of work (I made many commits to Perlito and applied many hacky tweaks to the
Games-Solitaire-Verify’s code to make it compatible). After doing all
that, node.js ran the generated code considerably slower than /usr/bin/perl5
ran the original Perl 5 code.
One should note that Perlito does not generate idiomatic JS code, and aims for
preserving the semantics of the Perl 5 code.
After that I contemplated using RPerl to speed up the code, but ran into
failing tests which I reported here -
https://github.com/wbraswell/rperl/issues/45 and I'm still waiting for them to
be resolved.
Then I used Devel-NYTProf (
https://metacpan.org/release/Devel-NYTProf ) to
profile the application and contiuously optimise hotspots. Eventually, I was
able to get the runtime down to 2m37.220s (two minutes and 37 seconds).
I also played a little with parallelising the code using IO-Async instead of GNU
make , but it only made matters worse.
Regards,
Shlomi Fish
--
-----------------------------------------------------------------
Shlomi Fish http://www.shlomifish.org/
http://www.shlomifish.org/humour/ways_to_do_it.html
When Chuck Norris disses your product, it’s not good publicity, even though
you can bet he’ll get the name right.
— http://www.shlomifish.org/humour/bits/facts/Chuck-Norris/
Please reply to list if it's a mailing list post - http://shlom.in/reply .
Received on Mon Feb 08 2016 - 09:10:01 IST