Marko Lahma f0198a9a17 Restructure benchmarks (#1283) il y a 2 ans
..
Properties b5c4b570ce Optimize declarative environment record handling for functions (#517) il y a 7 ans
Scripts f0198a9a17 Restructure benchmarks (#1283) il y a 2 ans
ArrayBenchmark.cs 3eddf04b74 Upgrade benchmark project and add YantraJS (#1276) il y a 2 ans
ArrayStressBenchmark.cs f0198a9a17 Restructure benchmarks (#1283) il y a 2 ans
DictionaryBenchmark.cs 3eddf04b74 Upgrade benchmark project and add YantraJS (#1276) il y a 2 ans
DromaeoBenchmark.cs f0198a9a17 Restructure benchmarks (#1283) il y a 2 ans
EngineComparisonBenchmark.cs f0198a9a17 Restructure benchmarks (#1283) il y a 2 ans
EngineConstructionBenchmark.cs 3eddf04b74 Upgrade benchmark project and add YantraJS (#1276) il y a 2 ans
EvaluationBenchmark.cs f0198a9a17 Restructure benchmarks (#1283) il y a 2 ans
InteropBenchmark.cs 3eddf04b74 Upgrade benchmark project and add YantraJS (#1276) il y a 2 ans
Jint.Benchmark.csproj f0198a9a17 Restructure benchmarks (#1283) il y a 2 ans
LinqJsBenchmark.cs f0198a9a17 Restructure benchmarks (#1283) il y a 2 ans
MinimalScriptBenchmark.cs f0198a9a17 Restructure benchmarks (#1283) il y a 2 ans
Program.cs 3eddf04b74 Upgrade benchmark project and add YantraJS (#1276) il y a 2 ans
README.md f0198a9a17 Restructure benchmarks (#1283) il y a 2 ans
SingleScriptBenchmark.cs f0198a9a17 Restructure benchmarks (#1283) il y a 2 ans
StopwatchBenchmark.cs f0198a9a17 Restructure benchmarks (#1283) il y a 2 ans
StringBuilderBenchmark.cs 3eddf04b74 Upgrade benchmark project and add YantraJS (#1276) il y a 2 ans
SunSpiderBenchmark.cs f0198a9a17 Restructure benchmarks (#1283) il y a 2 ans
TimeoutBenchmark.cs 3eddf04b74 Upgrade benchmark project and add YantraJS (#1276) il y a 2 ans
TypedArrayBenchmark.cs 3eddf04b74 Upgrade benchmark project and add YantraJS (#1276) il y a 2 ans
UncacheableExpressionsBenchmark.cs 3eddf04b74 Upgrade benchmark project and add YantraJS (#1276) il y a 2 ans

README.md

To run tests comparing engines, use:

dotnet run -c Release --allCategories EngineComparison

Engine comparison results

  • tests are run in global engine strict mode, as YantraJS always uses strict mode which improves performance
  • Jint and Jint_ParsedScript shows the difference between always parsing the script source file and reusing parsed Script instance.

Last updated 2022-09-03

  • Jint main
  • Jurassic 3.2.6
  • NiL.JS.NetCore 2.5.1419
  • YantraJS.Core 1.2.47

    
    BenchmarkDotNet=v0.13.2, OS=Windows 11 (10.0.22621.457)
    AMD Ryzen 9 5950X, 1 CPU, 32 logical and 16 physical cores
    .NET SDK=6.0.400
    [Host]     : .NET 6.0.8 (6.0.822.36306), X64 RyuJIT AVX2
    DefaultJob : .NET 6.0.8 (6.0.822.36306), X64 RyuJIT AVX2
    
    
    
Method FileName Mean StdDev Rank Allocated
Jint array-stress 13,507.095 μs 23.0399 μs 5 8745627 B
Jint_ParsedScript array-stress 13,102.050 μs 15.5290 μs 4 8723795 B
Jurassic array-stress 11,213.554 μs 14.3872 μs 3 11926461 B
NilJS array-stress 5,334.318 μs 23.5378 μs 1 4553815 B
YantraJS array-stress 7,286.025 μs 32.1957 μs 2 6318022 B
Jint dromaeo-3d-cube 23,587.542 μs 23.6725 μs 4 7247466 B
Jint_ParsedScript dromaeo-3d-cube 21,772.708 μs 40.7036 μs 3 7005434 B
Jurassic dromaeo-3d-cube 39,741.721 μs 64.2544 μs 5 10925914 B
NilJS dromaeo-3d-cube 8,708.896 μs 12.4054 μs 2 4125451 B
YantraJS dromaeo-3d-cube 5,017.989 μs 19.0233 μs 1 8786605 B
Jint dromaeo-core-eval 5,705.326 μs 21.1657 μs 2 350102 B
Jint_ParsedScript dromaeo-core-eval 5,668.950 μs 12.4161 μs 2 336990 B
Jurassic dromaeo-core-eval 13,447.357 μs 30.6629 μs 4 2971062 B
NilJS dromaeo-core-eval 2,173.203 μs 46.5428 μs 1 1595219 B
YantraJS dromaeo-core-eval 8,265.873 μs 56.7684 μs 3 37131603 B
Jint dromaeo-object-array 108,627.168 μs 511.8916 μs 4 103655627 B
Jint_ParsedScript dromaeo-object-array 108,528.990 μs 288.8372 μs 4 103625558 B
Jurassic dromaeo-object-array 41,209.118 μs 44.6309 μs 1 26433962 B
NilJS dromaeo-object-array 53,391.875 μs 732.5365 μs 2 18027054 B
YantraJS dromaeo-object-array 74,332.930 μs 528.6855 μs 3 24735409 B
Jint droma(...)egexp [21] 299,361.023 μs 7,904.1811 μs 1 241632484 B
Jint_ParsedScript droma(...)egexp [21] 295,042.982 μs 8,424.5753 μs 1 247151352 B
Jurassic droma(...)egexp [21] 683,250.476 μs 13,213.8098 μs 2 842918784 B
NilJS droma(...)egexp [21] 801,835.247 μs 13,416.6210 μs 3 901970880 B
YantraJS droma(...)egexp [21] 1,017,060.643 μs 7,046.5834 μs 4 964707752 B
Jint droma(...)tring [21] 628,645.310 μs 21,985.7843 μs 4 1363791136 B
Jint_ParsedScript droma(...)tring [21] 524,500.457 μs 22,516.2241 μs 2 1363541192 B
Jurassic droma(...)tring [21] 557,218.173 μs 23,822.7984 μs 3 1493044472 B
NilJS droma(...)tring [21] 400,573.819 μs 12,223.2081 μs 1 1446930864 B
YantraJS droma(...)tring [21] 2,258,766.944 μs 60,256.3876 μs 5 16092618624 B
Jint droma(...)ase64 [21] 66,060.024 μs 79.4200 μs 4 8049804 B
Jint_ParsedScript droma(...)ase64 [21] 64,215.565 μs 62.6330 μs 3 7968098 B
Jurassic droma(...)ase64 [21] 69,690.458 μs 199.4819 μs 5 76103531 B
NilJS droma(...)ase64 [21] 45,237.687 μs 534.6955 μs 2 51047211 B
YantraJS droma(...)ase64 [21] 42,177.560 μs 246.7996 μs 1 778591540 B
Jint evaluation 28.520 μs 0.0348 μs 2 34784 B
Jint_ParsedScript evaluation 12.906 μs 0.0298 μs 1 26752 B
Jurassic evaluation 1,286.204 μs 3.0882 μs 5 430506 B
NilJS evaluation 43.866 μs 1.2033 μs 3 22456 B
YantraJS evaluation 178.979 μs 0.6314 μs 4 178517 B
Jint linq-js 1,876.845 μs 3.2033 μs 3 1301929 B
Jint_ParsedScript linq-js 123.396 μs 0.1138 μs 1 230841 B
Jurassic linq-js 36,984.974 μs 395.7409 μs 4 9526082 B
NilJS linq-js NA NA ? -
YantraJS linq-js 391.523 μs 1.8922 μs 2 490377 B
Jint minimal 5.334 μs 0.0065 μs 3 14120 B
Jint_ParsedScript minimal 3.535 μs 0.0143 μs 1 12680 B
Jurassic minimal 234.184 μs 0.6536 μs 5 395505 B
NilJS minimal 4.516 μs 0.0933 μs 2 4272 B
YantraJS minimal 173.909 μs 0.1640 μs 4 174668 B
Jint stopwatch 357,288.654 μs 1,123.5726 μs 4 38906408 B
Jint_ParsedScript stopwatch 362,800.054 μs 962.7038 μs 5 38890808 B
Jurassic stopwatch 209,929.047 μs 346.3075 μs 2 160703632 B
NilJS stopwatch 247,228.571 μs 527.9922 μs 3 85866368 B
YantraJS stopwatch 76,725.368 μs 194.3363 μs 1 259048377 B

Benchmarks with issues: EngineComparisonBenchmark.NilJS: DefaultJob [FileName=linq-js]