From 0969e4fac8fe8c86f624869bff7f318618b385b4 Mon Sep 17 00:00:00 2001
From: Dave Watson
Date: Wed, 25 Oct 2023 10:31:48 -0700
Subject: [PATCH] Update benchmark
---
doc/benchmark_results2.org | 94 +++++++++++++++++++-------------------
docs/index.html | 42 +++++++++--------
2 files changed, 70 insertions(+), 66 deletions(-)
diff --git a/doc/benchmark_results2.org b/doc/benchmark_results2.org
index 33fcc7e..5e99e31 100644
--- a/doc/benchmark_results2.org
+++ b/doc/benchmark_results2.org
@@ -1,47 +1,47 @@
-| benchmark | hawk | chez | diff | win | reason | loop trace |
-|-----------+--------+---------+-------------+-------+-------------------------------------------------+------------|
-| ack | 2.13 | 1.9 | 10.798122 | | | x |
-| tak | 1.26 | 1.56 | -23.809524 | *WIN* | | x |
-| fib | 2.29 | 3.0 | -31.004367 | *WIN* | | |
-| sum | .89 | 1.546 | -73.707865 | *WIN* | | x |
-| diviter | 1.034 | 1.041 | -0.67698259 | *WIN* | alloc inline, fusion | x |
-| divrec | 1.593 | 1.636 | -2.6993095 | *WIN* | same | x |
-| nqueens | 2.94 | 3.8 | -29.251701 | *WIN* | closure analysis | x |
-| mperm | 5.168 | 7.2 | -39.318885 | *WIN* | | |
-| ntakl | 1.733 | 2.6 | -50.028852 | *WIN* | FRONTEND | x |
-| takl | 1.288 | 2.7 | -109.62733 | *WIN* | same | x |
-| wc | .648 | .902 | 30.077519 | | getc, print_obj, fputc, plt, call constant pool | x |
-| cat | 1.37 | 1.278 | 24.823529 | | same as wc | x |
-| cpstak | 1.962 | 2.1 | -7.0336391 | *WIN* | typecheck | |
-| primes | .5 | .6999 | -39.98 | *WIN* | | x |
-| deriv | .89 | .908 | -2.0224719 | *WIN* | merge GC, lea fusion, typechecks, snapshot min | |
-| triangl | .728 | 1.184 | -62.637363 | *WIN* | | x |
-| destruc | 1.02 | 1.28 | -25.490196 | *WIN* | | x |
-| gcbench | .49 | .556 | -13.469388 | *WIN* | bigger nursury | |
-| puzzle | 1.286 | 1.55 | -20.528771 | *WIN* | loop opt | x |
-| paraffins | 4.0 | 4.270 | -6.75 | *WIN* | | x |
-| maze | .40 | .845 | -111.25 | *WIN* | | x |
-| mazefun | 1.904 | 1.731 | 9.0861345 | | | x |
-| lattice | 2.7 | 2.7 | 0. | *WIN* | closure sinking, sccp | x |
-| browse | .88 | .987 | -12.159091 | *WIN* | | |
-| graphs | 1.75 | 1.3 | 25.714286 | | LOOP, closure analysis , closure sinking | nested |
-| conform | 1.80 | 1.422 | 21. | | | |
-| sboyer | .756 | .731 | 3.3068783 | | ?? typecheck | |
-| nboyer | 1.376 | 1.483 | -7.7761628 | *WIN* | ?? | |
-| array1 | 2.0 | 4.5 | -125. | *WIN* | | x |
-| earley | 1.99 | 3.1 | -55.778894 | *WIN* | | x |
-| scheme | 1.39 | 2.4 | -72.661871 | *WIN* | | x |
-| ctak | 3.45 | .4 | 88.405797 | | cc representation | x |
-| fibc | 1.639 | .328 | 79.987797 | | cc representation | x |
-| string | .5 | 2.5 | -400. | *WIN* | string ops | |
-| read1 | .781 | 0.574 | 42.6 | | read | |
-| parsing | 2.0 | 2.1 | -5. | *WIN* | sccp | |
-| peval | 1.475 | 1.46 | 1.0169492 | | loop catching. sccp | |
-| slatex | 1.98 | 1.958 | 1.1111111 | | | |
-| equal | .200 | .398 | -99. | *WIN* | | |
-| compiler | 1.918 | 2.004 | -4.4838373 | *WIN* | loop catching | |
-| matrix | 1.11 | .899 | 19.009009 | | loop catching?? opt_loop | |
-| dynamic | 1.832 | 1.447 | 21.015284 | | read | |
-| TOTAL | 68.242 | 76.9779 | -12.801354 | *WIN* | | |
-|-----------+--------+---------+-------------+-------+-------------------------------------------------+------------|
-#+TBLFM: $4=($2-$3) * 100.0 /$2::$5='(if (not (= $2 0)) (if (>= $3 $2) '*WIN* "") "BAD");N::@>$2=vsum(@2..@-1)::@>$3=vsum(@2..@-1)
+| benchmark | hawk | chez | diff | win | reason | loop trace |
+|-----------+-------+---------+-------------+-------+-------------------------------------------------------+------------|
+| ack | 1.87 | 1.9 | -1.6042781 | *WIN* | | x |
+| tak | 1.26 | 1.56 | -23.809524 | *WIN* | | x |
+| fib | 2.29 | 3.0 | -31.004367 | *WIN* | | |
+| sum | .89 | 1.546 | -73.707865 | *WIN* | | x |
+| diviter | 1.034 | 1.041 | -0.67698259 | *WIN* | | x |
+| divrec | 1.593 | 1.636 | -2.6993095 | *WIN* | | x |
+| nqueens | 2.94 | 3.8 | -29.251701 | *WIN* | | x |
+| mperm | 5.168 | 7.2 | -39.318885 | *WIN* | | |
+| ntakl | 1.733 | 2.6 | -50.028852 | *WIN* | | x |
+| takl | 1.96 | 2.7 | -37.755102 | *WIN* | | x |
+| wc | .537 | .902 | -67.970205 | *WIN* | | x |
+| cat | 1.268 | 1.278 | -0.78864353 | *WIN* | write fastpath | x |
+| cpstak | 1.962 | 2.1 | -7.0336391 | *WIN* | | |
+| primes | .5 | .6999 | -39.98 | *WIN* | | x |
+| deriv | .89 | .908 | -2.0224719 | *WIN* | | |
+| triangl | .728 | 1.184 | -62.637363 | *WIN* | | x |
+| destruc | 1.02 | 1.28 | -25.490196 | *WIN* | | x |
+| gcbench | .388 | .556 | -43.298969 | *WIN* | | |
+| puzzle | 1.286 | 1.55 | -20.528771 | *WIN* | | x |
+| paraffins | 3.9 | 4.270 | -9.4871795 | *WIN* | | x |
+| maze | .40 | .845 | -111.25 | *WIN* | | x |
+| mazefun | 1.693 | 1.731 | -2.2445363 | *WIN* | | x |
+| lattice | 2.5 | 2.7 | -8. | *WIN* | | x |
+| browse | .80 | .987 | -23.375 | *WIN* | | |
+| graphs | 1.712 | 1.3 | 24.065421 | | 'program' mode in chez. DEFINITELY opt_loop SLOADS | nested |
+| conform | 1.675 | 1.422 | 15.104478 | | program mode. specializing on lambda args? fix spills | |
+| sboyer | .721 | .731 | -1.3869626 | *WIN* | spills | |
+| nboyer | 1.440 | 1.483 | -2.9861111 | *WIN* | | |
+| array1 | 2.0 | 4.5 | -125. | *WIN* | | x |
+| earley | 2.15 | 3.1 | -44.186047 | *WIN* | | x |
+| scheme | 1.39 | 2.4 | -72.661871 | *WIN* | | x |
+| ctak | 4.5 | .4 | 91.111111 | | cc representation | x |
+| fibc | 1.639 | .328 | 79.987797 | | cc representation | x |
+| string | .5 | 2.5 | -400. | *WIN* | | |
+| read1 | .544 | 0.574 | -5.5147059 | *WIN* | | |
+| parsing | 1.96 | 2.1 | -7.1428571 | *WIN* | | |
+| peval | 1.483 | 1.51 | -1.8206339 | *WIN* | fix spill slots | |
+| slatex | 1.787 | 1.958 | -9.5691102 | *WIN* | file jitops | |
+| equal | .200 | .398 | -99. | *WIN* | | |
+| compiler | 1.579 | 2.004 | -26.915769 | *WIN* | | |
+| matrix | 1.11 | 1.11 | 0. | *WIN* | loop catching?? opt_loop | |
+| dynamic | 1.54 | 1.447 | 6.0389610 | OK | read | |
+| TOTAL | 66.54 | 77.2389 | -16.078900 | *WIN* | | |
+|-----------+-------+---------+-------------+-------+-------------------------------------------------------+------------|
+#+TBLFM: $4=($2-$3) * 100.0 /$2::$5='(if (not (= $2 0)) (if (>= $3 $2) '*WIN* (if (>= (* 1.15 $3) $2) 'OK "")) "BAD");N::@>$2=vsum(@2..@-1)::@>$3=vsum(@2..@-1)
diff --git a/docs/index.html b/docs/index.html
index c1ec01c..b142834 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -105,7 +105,7 @@ Benchmarks
- Hawk has an unoptimized read/write path, and unoptimized continuation representation.
+ Hawk has an unoptimized continuation representation.
Hawk JIT does not currently support flonums, so all flonums benchmarks mostly use the VM.
@@ -186,51 +186,55 @@ Benchmarks
}
arrayLabel = ['Chez', 'Loko', 'Gambit', 'Hawk'];
makechart('destruc', [1.2800000000002, 1.1779999732971191, 1.529525, 1.08]);
- makechart('conform', [1.3599999999996726, 1.2949999570846558, 2.161752, 1.89]);
+ makechart('conform', [1.3599999999996726, 1.2949999570846558, 2.161752, 1.675]);
makechart('puzzle', [1.6299999999996544, 1.5299999713897705, 2.193014, 1.32]);
- makechart('parsing', [2.0299999999997453, 1.8980000019073486, 1.837709, 1.9]);
+ makechart('parsing', [2.0299999999997453, 1.8980000019073486, 1.837709, 1.96]);
makechart('nqueens', [3.519999999999982, 4.40500020980835, 4.38331, 2.83]);
makechart('primes', [0.650000000000091, 0.75, 0.577724, 0.55]);
makechart('tak', [1.1199999999998909, 1.1089999675750732, 1.620081, 1.24]);
makechart('triangl', [1.199999999999818, 0.9570000171661377, 1.264036, 0.87]);
makechart('matrix', [1.32, 1.2879999876022339, 1.603249, 1.11]);
- makechart('lattice', [2.6600000000003092, 2.4709999561309814, 4.184831, 2.66]);
- makechart('browse', [0.9500000000002728, 1.1690000295639038, 1.476638, .92]);
+ makechart('lattice', [2.6600000000003092, 2.4709999561309814, 4.184831, 2.5]);
+ makechart('browse', [0.9500000000002728, 1.1690000295639038, 1.476638, .8]);
makechart('sum', [1.6199999999998909, 1.6970000267028809, 1.363083, 0.86]);
- makechart('nboyer', [1.3900000000003274, 1.2589999437332153, 2.450626, 1.376]);
- makechart('gcbench', [0.5399999999999636, 0.5889999866485596, 1.04997, 0.42]);
+ makechart('nboyer', [1.3900000000003274, 1.2589999437332153, 2.450626, 1.44]);
+ makechart('gcbench', [0.5399999999999636, 0.5889999866485596, 1.04997, 0.38]);
makechart('fib', [2.980000000000018, 2.680999994277954, 2.147171, 2.34]);
makechart('cpstak', [2.130000000000109, 3.247999906539917, 2.585882, 1.81]);
makechart('maze', [.437, 1.062000036239624, 0.448774, 0.42]);
- makechart('takl', [2.7899999999999636, 1.5609999895095825, 1.751044, 1.69]);
+ makechart('takl', [2.7899999999999636, 1.5609999895095825, 1.751044, 1.98]);
makechart('deriv', [0.8800000000001091, 1.7610000371932983, 0.939768, 0.89]);
makechart('ntakl', [2.6599999999998545, 1.5379999876022339, 1.935883, 1.78]);
- makechart('slatex', [1.849999999999909, 1.840999960899353, 3.885483, 1.91]);
- makechart('compiler', [2.2, 1.059000015258789, 0.0, 1.9]);
- makechart('sboyer', [0.7400000000002365, 0.6370000243186951, 1.000899, .76]);
+ makechart('slatex', [1.849999999999909, 1.840999960899353, 3.885483, 1.88]);
+ makechart('compiler', [2.2, 1.059000015258789, 0.0, 1.579]);
+ makechart('sboyer', [0.7400000000002365, 0.6370000243186951, 1.000899, .72]);
makechart('scheme', [1.9800000000000182, 1.878999948501587, 4.262164, 1.39]);
- makechart('earley', [2.9200000000000728, 0.0, 3.036918, 1.99]);
+ makechart('earley', [2.9200000000000728, 0.0, 3.036918, 2.15]);
makechart('peval', [1.400000000000091, 1.8600000143051147, 1.82575, 1.47]);
makechart('ack', [1.9100000000003092, 2.5290000438690186, 2.534312, 1.52]);
- makechart('paraffins', [3.363, 1.2400000095367432, 2.397688, 4.0]);
+ makechart('paraffins', [3.363, 1.2400000095367432, 2.397688, 3.9]);
makechart('diviter', [0.9800000000000182, 1.1749999523162842, 1.108788, 1.00]);
makechart('equal', [0.3900000000003274, 1.5759999752044678, 0.234992, 0.2]);
makechart('divrec', [1.6200000000, 1.9700000286102295, 1.559836, 1.59]);
- makechart('graphs', [1.3099999999999454, 1.7000000476837158, 5.411687, 1.75]);
+ makechart('graphs', [1.3099999999999454, 1.7000000476837158, 5.411687, 1.71]);
makechart('mperm', [6.8400000000001455, 4.39300012588501, 4.34869, 5.05]);
- makechart('mazefun', [1.5799999999999272, 1.6059999465942383, 2.093023, 1.90]);
+ makechart('mazefun', [1.5799999999999272, 1.6059999465942383, 2.093023, 1.69]);
makechart('array1', [4.5900000000001455, 1.4989999532699585, 2.981551, 2.00]);
makechart('wc', [0.9400000000000546, 1.5779999494552612, 5.82148, .648]);
makechart('string', [2.9100000000003092, 2.611999988555908, 1.703866, .5]);
makechart('cat', [1.3100000000004002, 2.421999931335449, 10.767127, 1.371]);
+ makechart('dynamic', [1.3899999999998727, 2.3949999809265137, 3.172476, 1.55]);
+ makechart('tail', [0.0, 3.299999952316284, 2.195105, 0.24]);
+ makechart('read1', [0.5199999999999818, 1.9600000381469727, 1.245462, 0.592]);
+ oldsums = [...sums];
makechart('Totals', sums);
+ sums = oldsums;
cur_section = "charts2";
- makechart('ctak', [0.41000000000030923, 16.945999145507812, 1.854662, 3.29]);
+ makechart('ctak', [0.41000000000030923, 16.945999145507812, 1.854662, 4.55]);
makechart('fibc', [0.30999999999994543, 9.291000366210938, 1.176995, 1.58]);
- makechart('dynamic', [1.3899999999998727, 2.3949999809265137, 3.172476, 1.83]);
- makechart('tail', [0.0, 3.299999952316284, 2.195105, 0.24]);
- makechart('read1', [0.5199999999999818, 1.9600000381469727, 1.245462, 0.781]);
+ oldsums = [...sums];
makechart('Totals', sums);
+ sums = oldsums;
cur_section = "charts3";
makechart('sum1', [0.7400000000002365, 2.99, 0.762798, 1.79]);
makechart('simplex', [1.6700000000000728, 1.3509999513626099, 1.532647, 9.44]);