notbenh / euler_bench Goto Github PK
View Code? Open in Web Editor NEWusing the euler projects as a source to benchmark lanugages
using the euler projects as a source to benchmark lanugages
currently we are treating each interp as the language, what the config really should be doing is listing all known interps and then each interp should point to an array of 'languages' (I cant really think of why I have this feeling that it should be an array but its future proof that way I guess).
because the config does not have haskell listed, haskell does not get picked up as a proper language thus it's tossed in to the opts bucket and then all known languages are run.
we should first check the config languages, then the solution languages, leftovers then should go to opt.
we should have a problem 000 that is the most basic thing that you can hand to the interpreter in the hope to get a vague number of what the 'startup' time is.
Then once we have that we should lop that off the top of the results of the runs for the actual solutions, or at least make it an option.
this should likely test -x for the given string and if fails complain.
currently 3 spaces for indentation is not going over well.
what we should do here though is run all the perl6 interps as you asked for a language.
otherwise you get a bunch of warnings....
Currently this is done with File::Fu and File::Spec::Functions, It's a bit messy and could use a cleaning.
Mmmmmm, docs.
Needs to be smart enough to skip languages that are not installed.
For example if some one wanted to compare perl5.8 and perl5.10, currently there is no way to do a direct comparison as we only accept one value for 'where does perl live'
Perl 5.8 or Perl 5.10 ?
I (dukeleto) lean heavily towards 5.10, but making it 5.8 would mean that we could benchmark perl 5.8 against 5.10 .
This should allow any one to build eternal visualizations of the data.
There are multiple implementations of Perl 6 (like Rakudo, SMOP and Pugs), so we should use the name "rakudo" to refer to Perl 6 on Parrot.
compare_problem_number and compare_implementations fail to notice if a language implementation is not found. Instead it just looks like that language runs really fast. E.g,
Benchmarking EP#002 with 100 iterations (warning: too few iterations for a reliable count) Rate perl5/002/01.pl perl6/002/01.pl perl5/002/01.pl 49.3/s -- -79% perl6/002/01.pl 233/s 372% --
Currently we are using ENV to store the locations of all interpreters for solutions. It has been suggested that moving forward a config file would be a more flexible solution.
will need the ability to take an array of intrripts.
We currently like the cmp method of specifying both lang and problems to mix and match your results, but it could use some work.
We should capture output and only display it if asked for, thus requiring an option to toggle this setting.
./bin/bench 003:02 parrot --count=1000
would be cool. It would run only the 02 implementation of Euler Problem 003.
Chromatic said that a persistent parrot interpreter is possible.
Or we could just subtract a measured interpreter startup time.
it's nice to have local comparisons, but if we start to do run-to-run comparisons then we should have a way to start to standardize things so that we don't skew results to favor those run on faster boxes.
ya get cracking.
We can safely assume we have perl5 (though checking versions might not be a bad idea). Will need to also install some CPAN modules.
Ask if the user wants to install Rakudo(parrot), ruby(?), and any other language that have solutions for.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.