-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Switch to BenchmarkDotNet and new csproj format #2
Conversation
Sounds good to me. I'll take a look at what's in the PR this weekend. |
Cool, forgot to show example output so here it is, taken from JintBenchmark GitHub flavored output file. BenchmarkDotNet=v0.10.11, OS=Windows 10 Redstone 3 [1709, Fall Creators Update] (10.0.16299.192)
Processor=Intel Core i7-6820HQ CPU 2.70GHz (Skylake), ProcessorCount=8
Frequency=2648435 Hz, Resolution=377.5815 ns, Timer=TSC
[Host] : .NET Framework 4.7 (CLR 4.0.30319.42000), 64bit RyuJIT-v4.7.2600.0
Job-ZRUPTL : .NET Framework 4.7 (CLR 4.0.30319.42000), 64bit RyuJIT-v4.7.2600.0
InvocationCount=4 LaunchCount=1 TargetCount=3
UnrollFactor=4 WarmupCount=3
|
Getting some compiler errors on JintBenchmark. Missing a reference for Esprima. I'm not familiar with the Esprima project. Did @sebastienros abandon Jint and replace it with a .NET port of Esprima to support a newer ECMA spec? Are both still being worked on? Should there be tests for both here? |
Ah, the package version is on myget only I assume, will push to nuget since we now it's stable. @rushfrisby Esprima is just the parser part. Jint is the interpreter. I did the split since people might just care about reading/analyzing JS. |
Cool - I'm looking forward to being able to run this! |
The using directive might be redundant. I tested 3.x series too which has esprima. 2.x should not need it. |
@rushfrisby I have added a commit that upgrades to fresh Jint 3.0.0-beta-1101 that was released to public NuGet just hours ago. I also updated the table above to reflect results from the latest release. /cc @sebastienros |
@rushfrisby I've force-pushed an update for dependencies, should have the latest and greatest. Some nice improvements on Jint side too. I hope you have some in the future to check it out, maybe even give us an update in the form of a blog post. Cheers! |
dang, thought I had merged this! I'll do it now. I'll work on an updated blog post - I get a few requests/yr to update. |
I don't know how active this comparison work is, but I'm creating this PR to show the changes. Might benefit or not. Now running each engine as benchmark that records times with memory allocations. BenchmarkDotNet gives all the goodies like warmup etc for more reliable results. Only downside is that now each engine has separate result file, one need to copy&paste from HTML or CSV to build same kind of comparison you have in your blog.
I'm doing some performance work in Jint so this helps by allowing running the Jint suite with different versions. Easiest way to test the new functionality is to run
dotnet run -c Release
in project folder and optionally addingall
parameter to run all instead of prompt.