Skip to content

Specialized bytecodes#40

Merged
Hirevo merged 22 commits intoHirevo:masterfrom
OctaveLarose:specialized-bytecodes
Feb 16, 2024
Merged

Specialized bytecodes#40
Hirevo merged 22 commits intoHirevo:masterfrom
OctaveLarose:specialized-bytecodes

Conversation

@OctaveLarose
Copy link
Copy Markdown
Contributor

New, specialized bytecodes:

  • PushConstant0
  • PushConstant1
  • PushConstant2
  • Push0
  • Push1
  • PushNil
  • Send1
  • Send2
  • Send3
  • SendN
  • SuperSend1
  • SuperSend2
  • SuperSend3
  • SuperSendN

..which were really just me looking at the PySOM bytecode set and thinking "oh yeah, that sounds like a useful bytecode"

The speedup is 9% on average or so for me.

The code duplication in interpreter.rs for all the specialized send bytecodes is a bit ugly, should probably replace those with send and super_send functions tagged with #[inline].

@som-rs-benchmarker
Copy link
Copy Markdown

som-rs-benchmarker Bot commented Feb 7, 2024

Here are the benchmark results for specialized-bytecodes (commit: 57e7246):

AST interpreter
+-----------------+----------------------------------------+------------------------------+
| Benchmark       | master (base)                          | specialized-bytecodes (head) |
+-----------------+----------------------------------------+------------------------------+
| Bounce          | 200.58 ms ± 12.26 (188.33..220.40)     | 1.02x ± 0.09 (0.89..1.09)    |
| BubbleSort      | 267.21 ms ± 20.40 (250.46..313.39)     | 1.02x ± 0.08 (0.96..1.06)    |
| DeltaBlue       | 156.42 ms ± 3.27 (150.07..161.51)      | 0.94x ± 0.12 (0.73..1.04)    |
| Dispatch        | 191.09 ms ± 13.29 (181.11..223.84)     | 1.02x ± 0.09 (0.90..1.06)    |
| Fannkuch        | 133.32 ms ± 21.61 (119.71..174.05)     | 1.07x ± 0.19 (0.92..1.16)    |
| Fibonacci       | 355.52 ms ± 7.39 (339.60..364.65)      | 1.00x ± 0.03 (0.96..1.02)    |
| FieldLoop       | 322.07 ms ± 8.78 (309.77..342.97)      | 1.00x ± 0.04 (0.94..1.04)    |
| GraphSearch     | 81.46 ms ± 8.44 (75.83..105.04)        | 1.00x ± 0.11 (0.93..1.04)    |
| IntegerLoop     | 330.77 ms ± 16.40 (315.82..372.33)     | 1.04x ± 0.05 (1.02..1.05)    |
| JsonSmall       | 199.63 ms ± 6.33 (191.96..213.17)      | 0.99x ± 0.05 (0.90..1.04)    |
| List            | 238.41 ms ± 17.11 (224.10..279.76)     | 0.96x ± 0.08 (0.91..1.01)    |
| Loop            | 413.41 ms ± 13.02 (403.54..447.36)     | 0.95x ± 0.05 (0.89..1.01)    |
| Mandelbrot      | 261.30 ms ± 14.33 (241.29..291.47)     | 0.97x ± 0.08 (0.90..1.07)    |
| NBody           | 213.68 ms ± 10.51 (199.04..231.97)     | 1.02x ± 0.06 (0.94..1.06)    |
| PageRank        | 287.96 ms ± 4.70 (282.06..297.69)      | 0.93x ± 0.05 (0.83..1.00)    |
| Permute         | 306.29 ms ± 11.76 (293.17..334.64)     | 1.03x ± 0.05 (0.97..1.08)    |
| Queens          | 235.05 ms ± 13.09 (222.07..267.73)     | 1.01x ± 0.06 (0.95..1.05)    |
| QuickSort       | 79.51 ms ± 4.03 (73.72..86.50)         | 1.09x ± 0.07 (1.03..1.13)    |
| Recurse         | 271.54 ms ± 9.30 (261.47..288.90)      | 1.01x ± 0.04 (0.97..1.05)    |
| Richards        | 3964.94 ms ± 129.96 (3769.64..4249.61) | 1.01x ± 0.04 (0.98..1.03)    |
| Sieve           | 409.89 ms ± 12.48 (391.72..430.12)     | 0.98x ± 0.05 (0.93..1.02)    |
| Storage         | 82.69 ms ± 3.50 (78.90..90.41)         | 0.99x ± 0.07 (0.87..1.03)    |
| Sum             | 166.09 ms ± 12.01 (157.79..197.97)     | 1.05x ± 0.08 (1.04..1.06)    |
| Towers          | 308.61 ms ± 8.87 (294.06..325.57)      | 0.98x ± 0.05 (0.91..1.03)    |
| TreeSort        | 157.48 ms ± 5.54 (152.23..167.88)      | 1.04x ± 0.09 (0.86..1.10)    |
| WhileLoop       | 363.05 ms ± 10.88 (347.37..379.22)     | 0.99x ± 0.04 (0.96..1.02)    |
|                 |                                        |                              |
| Average Speedup |               (baseline)               | 1.00x ± 0.02 (0.93..1.09)    |
+-----------------+----------------------------------------+------------------------------+

The raw ReBench data files are available for download here: baseline and head

Bytecode interpreter
+-----------------+---------------------------------------+------------------------------+
| Benchmark       | master (base)                         | specialized-bytecodes (head) |
+-----------------+---------------------------------------+------------------------------+
| Bounce          | 87.39 ms ± 3.94 (82.13..93.47)        | 1.06x ± 0.06 (0.98..1.11)    |
| BubbleSort      | 124.75 ms ± 10.27 (116.83..148.43)    | 1.12x ± 0.09 (1.09..1.15)    |
| DeltaBlue       | 75.52 ms ± 11.90 (65.28..103.69)      | 1.16x ± 0.19 (1.05..1.22)    |
| Dispatch        | 91.84 ms ± 10.13 (85.92..120.04)      | 1.08x ± 0.12 (1.04..1.11)    |
| Fannkuch        | 58.91 ms ± 6.82 (53.30..76.21)        | 1.12x ± 0.21 (0.78..1.20)    |
| Fibonacci       | 155.08 ms ± 3.34 (148.35..160.91)     | 1.05x ± 0.08 (0.94..1.14)    |
| FieldLoop       | 209.89 ms ± 7.27 (197.88..223.08)     | 1.08x ± 0.05 (1.03..1.13)    |
| GraphSearch     | 38.57 ms ± 0.94 (37.62..40.75)        | 1.07x ± 0.03 (1.05..1.10)    |
| IntegerLoop     | 161.48 ms ± 6.32 (154.05..172.59)     | 1.08x ± 0.05 (1.04..1.11)    |
| JsonSmall       | 99.75 ms ± 3.23 (95.41..104.19)       | 1.06x ± 0.05 (1.01..1.09)    |
| List            | 118.52 ms ± 4.32 (115.69..129.87)     | 1.11x ± 0.05 (1.04..1.15)    |
| Loop            | 203.73 ms ± 9.83 (195.36..227.59)     | 1.05x ± 0.06 (1.00..1.08)    |
| Mandelbrot      | 129.58 ms ± 3.02 (124.64..135.81)     | 1.05x ± 0.05 (0.96..1.08)    |
| NBody           | 91.96 ms ± 2.42 (88.81..95.74)        | 1.05x ± 0.04 (1.00..1.09)    |
| PageRank        | 135.77 ms ± 3.21 (131.19..139.60)     | 1.00x ± 0.06 (0.92..1.09)    |
| Permute         | 134.17 ms ± 5.08 (127.98..142.64)     | 1.12x ± 0.09 (0.94..1.18)    |
| Queens          | 102.97 ms ± 8.97 (98.10..128.11)      | 1.11x ± 0.10 (1.04..1.15)    |
| QuickSort       | 34.07 ms ± 0.66 (33.13..35.14)        | 1.02x ± 0.10 (0.89..1.11)    |
| Recurse         | 133.56 ms ± 15.36 (119.23..159.24)    | 1.07x ± 0.17 (0.83..1.15)    |
| Richards        | 1629.39 ms ± 28.33 (1586.59..1665.04) | 1.06x ± 0.04 (1.01..1.12)    |
| Sieve           | 192.77 ms ± 6.59 (184.32..202.61)     | 1.08x ± 0.10 (0.87..1.13)    |
| Storage         | 38.15 ms ± 1.00 (36.85..40.38)        | 1.06x ± 0.06 (1.00..1.16)    |
| Sum             | 79.11 ms ± 2.17 (75.91..83.18)        | 1.07x ± 0.04 (1.01..1.10)    |
| Towers          | 144.53 ms ± 6.26 (138.01..156.38)     | 0.99x ± 0.16 (0.72..1.15)    |
| TreeSort        | 53.78 ms ± 2.42 (50.76..59.26)        | 1.10x ± 0.05 (1.05..1.12)    |
| WhileLoop       | 202.72 ms ± 5.68 (195.79..211.50)     | 1.12x ± 0.04 (1.05..1.15)    |
|                 |                                       |                              |
| Average Speedup |              (baseline)               | 1.07x ± 0.02 (0.99..1.16)    |
+-----------------+---------------------------------------+------------------------------+

The raw ReBench data files are available for download here: baseline and head

The benchmarks were run using ReBench v1.2.0
The statistical analysis was done using rebench-tabler v0.1.0

The source code of this benchmark runner is available as a GitHub Gist for more details about the setup

@Hirevo Hirevo added M-interpreter Module: Interpreter P-medium Priority: Medium C-performance Category: Performance improvements labels Feb 7, 2024
@som-rs-benchmarker
Copy link
Copy Markdown

som-rs-benchmarker Bot commented Feb 14, 2024

Here are the benchmark results for specialized-bytecodes (commit: 032a8da):

AST interpreter
+-----------------+---------------------------------------+------------------------------+
| Benchmark       | master (base)                         | specialized-bytecodes (head) |
+-----------------+---------------------------------------+------------------------------+
| Bounce          | 215.20 ms ± 30.14 (188.24..278.03)    | 1.09x ± 0.16 (0.97..1.16)    |
| BubbleSort      | 277.82 ms ± 16.47 (263.51..312.86)    | 0.97x ± 0.09 (0.85..1.05)    |
| DeltaBlue       | 165.22 ms ± 10.10 (153.74..186.83)    | 0.96x ± 0.19 (0.64..1.09)    |
| Dispatch        | 222.97 ms ± 21.56 (191.61..263.32)    | 1.19x ± 0.12 (1.10..1.26)    |
| Fannkuch        | 136.91 ms ± 18.72 (122.61..186.58)    | 1.05x ± 0.15 (0.94..1.10)    |
| Fibonacci       | 372.75 ms ± 21.77 (349.07..425.46)    | 1.02x ± 0.07 (0.98..1.06)    |
| FieldLoop       | 326.34 ms ± 10.40 (311.69..343.92)    | 0.97x ± 0.05 (0.91..1.04)    |
| GraphSearch     | 94.84 ms ± 7.93 (85.94..108.58)       | 1.10x ± 0.13 (0.92..1.18)    |
| IntegerLoop     | 347.98 ms ± 29.23 (318.76..412.29)    | 1.01x ± 0.10 (0.91..1.07)    |
| JsonSmall       | 206.15 ms ± 9.33 (196.22..226.08)     | 0.99x ± 0.06 (0.91..1.04)    |
| List            | 240.09 ms ± 9.64 (230.41..260.22)     | 1.03x ± 0.05 (0.98..1.05)    |
| Loop            | 439.32 ms ± 25.57 (405.53..479.38)    | 1.02x ± 0.08 (0.95..1.08)    |
| Mandelbrot      | 278.34 ms ± 19.74 (259.69..315.81)    | 1.02x ± 0.09 (0.92..1.09)    |
| NBody           | 232.99 ms ± 37.07 (211.47..335.38)    | 1.09x ± 0.18 (1.03..1.13)    |
| PageRank        | 310.74 ms ± 27.21 (289.88..362.34)    | 1.01x ± 0.11 (0.89..1.07)    |
| Permute         | 324.15 ms ± 20.10 (297.21..360.49)    | 1.05x ± 0.07 (0.99..1.09)    |
| Queens          | 255.87 ms ± 11.64 (238.14..274.06)    | 0.96x ± 0.12 (0.74..1.09)    |
| QuickSort       | 80.23 ms ± 11.87 (70.28..109.38)      | 1.06x ± 0.16 (1.02..1.12)    |
| Recurse         | 280.95 ms ± 24.60 (261.98..345.68)    | 1.03x ± 0.09 (1.00..1.06)    |
| Richards        | 4123.42 ms ± 96.71 (3993.23..4334.67) | 1.02x ± 0.03 (1.00..1.07)    |
| Sieve           | 426.41 ms ± 19.37 (405.21..475.37)    | 0.98x ± 0.07 (0.88..1.06)    |
| Storage         | 84.16 ms ± 5.70 (79.93..99.64)        | 0.91x ± 0.25 (0.51..1.04)    |
| Sum             | 170.20 ms ± 9.20 (163.78..187.62)     | 0.94x ± 0.11 (0.74..1.06)    |
| Towers          | 322.02 ms ± 13.52 (306.54..349.08)    | 1.03x ± 0.05 (0.95..1.05)    |
| TreeSort        | 162.65 ms ± 9.52 (154.02..179.68)     | 1.01x ± 0.11 (0.83..1.10)    |
| WhileLoop       | 381.07 ms ± 22.42 (367.52..441.61)    | 1.03x ± 0.07 (0.99..1.07)    |
|                 |                                       |                              |
| Average Speedup |              (baseline)               | 1.02x ± 0.02 (0.91..1.19)    |
+-----------------+---------------------------------------+------------------------------+

The raw ReBench data files are available for download here: baseline and head

Bytecode interpreter
+-----------------+---------------------------------------+------------------------------+
| Benchmark       | master (base)                         | specialized-bytecodes (head) |
+-----------------+---------------------------------------+------------------------------+
| Bounce          | 88.19 ms ± 5.65 (84.26..103.40)       | 1.13x ± 0.09 (1.06..1.20)    |
| BubbleSort      | 140.33 ms ± 14.23 (130.04..177.64)    | 1.02x ± 0.25 (0.75..1.26)    |
| DeltaBlue       | 68.95 ms ± 2.11 (65.39..73.66)        | 1.12x ± 0.05 (1.06..1.19)    |
| Dispatch        | 94.40 ms ± 5.16 (89.30..106.79)       | 1.11x ± 0.09 (0.95..1.16)    |
| Fannkuch        | 59.99 ms ± 6.40 (54.83..77.27)        | 1.15x ± 0.19 (0.85..1.24)    |
| Fibonacci       | 167.25 ms ± 15.62 (150.53..198.65)    | 1.15x ± 0.14 (0.99..1.22)    |
| FieldLoop       | 224.87 ms ± 21.04 (205.06..260.85)    | 1.19x ± 0.12 (1.12..1.27)    |
| GraphSearch     | 40.33 ms ± 1.26 (38.77..42.18)        | 1.07x ± 0.07 (0.98..1.19)    |
| IntegerLoop     | 165.74 ms ± 1.94 (162.60..168.94)     | 1.09x ± 0.05 (1.00..1.15)    |
| JsonSmall       | 99.57 ms ± 2.84 (95.35..104.04)       | 0.96x ± 0.17 (0.66..1.07)    |
| List            | 129.87 ms ± 17.09 (116.60..170.88)    | 1.08x ± 0.19 (0.92..1.23)    |
| Loop            | 239.27 ms ± 32.94 (206.76..320.94)    | 1.26x ± 0.19 (1.12..1.34)    |
| Mandelbrot      | 147.18 ms ± 17.86 (125.46..179.23)    | 1.14x ± 0.27 (0.73..1.29)    |
| NBody           | 93.70 ms ± 3.68 (88.18..99.08)        | 0.95x ± 0.15 (0.74..1.12)    |
| PageRank        | 137.83 ms ± 1.89 (134.44..139.81)     | 1.06x ± 0.06 (0.95..1.14)    |
| Permute         | 137.85 ms ± 13.23 (126.55..170.11)    | 1.15x ± 0.14 (0.96..1.22)    |
| Queens          | 108.38 ms ± 13.81 (96.50..140.49)     | 1.04x ± 0.17 (0.85..1.13)    |
| QuickSort       | 35.77 ms ± 6.52 (32.62..54.21)        | 1.08x ± 0.26 (0.75..1.21)    |
| Recurse         | 133.41 ms ± 6.50 (122.90..142.02)     | 1.01x ± 0.19 (0.69..1.18)    |
| Richards        | 1669.06 ms ± 58.86 (1566.45..1752.70) | 1.09x ± 0.05 (1.05..1.13)    |
| Sieve           | 201.22 ms ± 9.75 (189.65..216.91)     | 1.17x ± 0.06 (1.14..1.19)    |
| Storage         | 43.49 ms ± 11.33 (36.30..74.62)       | 1.25x ± 0.33 (1.19..1.31)    |
| Sum             | 92.10 ms ± 13.49 (78.60..118.34)      | 1.24x ± 0.18 (1.19..1.29)    |
| Towers          | 146.77 ms ± 13.82 (134.97..180.78)    | 1.15x ± 0.12 (1.08..1.20)    |
| TreeSort        | 54.48 ms ± 1.06 (53.40..56.65)        | 0.99x ± 0.10 (0.77..1.07)    |
| WhileLoop       | 206.02 ms ± 6.44 (200.16..221.54)     | 1.01x ± 0.14 (0.74..1.15)    |
|                 |                                       |                              |
| Average Speedup |              (baseline)               | 1.10x ± 0.03 (0.95..1.26)    |
+-----------------+---------------------------------------+------------------------------+

The raw ReBench data files are available for download here: baseline and head

The benchmarks were run using ReBench v1.2.0
The statistical analysis was done using rebench-tabler v0.1.0

The source code of this benchmark runner is available as a GitHub Gist for more details about the setup

@OctaveLarose
Copy link
Copy Markdown
Contributor Author

OctaveLarose commented Feb 14, 2024

Fixed a bug which improved the perf of the send bytecodes a bit. Also added macros to avoid repetition in the bytecode handlers. These bytecode should play very nicely with #39 (especially PushNil).

Pretty much ready to merge in my book, just missing a couple more tests (and also for me to look at the TODOs I left in the code.. some are outdated).

Let me know what you think when you get the time, Nicolas

Copy link
Copy Markdown
Owner

@Hirevo Hirevo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The performance increase is very nice to see for simply specializing some very common bytecode.

I really like the fact that you implemented a bytecode deduplication routine in there.

A more fleshed out "optimisation pass" system could be beneficial to cleanly implement various bytecode cleanup routines (like I thought about one for class methods that use RETURN_NON_LOCAL while outside of any closure, in which case we could transform them into simpler RETURN_LOCAL instructions).
This is something I'll add on my To-Do list.

I just have some minor remarks here and there, but nothing major.

Comment thread som-interpreter-bc/src/compiler.rs Outdated
Comment thread som-interpreter-bc/src/compiler.rs Outdated
Comment thread som-interpreter-bc/src/compiler.rs Outdated
Comment thread som-interpreter-bc/src/disassembler.rs Outdated
Comment thread som-core/src/bytecode.rs Outdated
Comment thread som-core/src/bytecode.rs Outdated
Comment thread som-core/src/bytecode.rs Outdated
Comment thread som-core/src/bytecode.rs Outdated
Comment thread som-interpreter-bc/src/disassembler.rs Outdated
Comment thread som-interpreter-bc/src/interpreter.rs Outdated
Co-authored-by: Nicolas Polomack <nicolas@polomack.eu>
@som-rs-benchmarker
Copy link
Copy Markdown

som-rs-benchmarker Bot commented Feb 16, 2024

Here are the benchmark results for specialized-bytecodes (commit: 27b6034):

AST interpreter
+-----------------+-------------------------------------+------------------------------+
| Benchmark       | master (base)                       | specialized-bytecodes (head) |
+-----------------+-------------------------------------+------------------------------+
| Bounce          | 335.67 ms ± 36.47 (285.55..394.85)  | 1.07x ± 0.20 (0.82..1.44)    |
| BubbleSort      | 478.87 ms ± 37.47 (424.38..537.65)  | 1.62x ± 0.18 (1.38..1.84)    |
| DeltaBlue       | 267.97 ms ± 33.98 (208.16..324.68)  | 1.51x ± 0.22 (1.30..1.64)    |
| Dispatch        | 338.87 ms ± 51.18 (242.64..420.28)  | 1.40x ± 0.41 (0.86..1.70)    |
| Fannkuch        | 211.80 ms ± 41.30 (146.50..280.13)  | 1.27x ± 0.50 (0.68..1.75)    |
| Fibonacci       | 590.68 ms ± 61.30 (497.64..722.19)  | 1.51x ± 0.17 (1.41..1.64)    |
| FieldLoop       | 567.47 ms ± 88.12 (451.14..745.95)  | 1.66x ± 0.27 (1.52..1.73)    |
| GraphSearch     | 147.59 ms ± 41.24 (95.42..215.01)   | 1.57x ± 0.52 (1.08..1.79)    |
| IntegerLoop     | 538.42 ms ± 79.42 (375.72..707.89)  | 1.56x ± 0.24 (1.41..1.63)    |
| JsonSmall       | 328.92 ms ± 42.42 (254.54..421.30)  | 0.96x ± 0.19 (0.77..1.22)    |
| List            | 391.38 ms ± 61.29 (312.68..518.10)  | 1.55x ± 0.28 (1.27..1.70)    |
| Loop            | 665.49 ms ± 61.08 (563.75..756.50)  | 1.44x ± 0.18 (1.24..1.60)    |
| Mandelbrot      | 413.82 ms ± 51.73 (352.19..506.05)  | 1.54x ± 0.21 (1.36..1.63)    |
| NBody           | 358.43 ms ± 44.17 (306.91..418.77)  | 1.49x ± 0.21 (1.34..1.66)    |
| PageRank        | 487.05 ms ± 53.40 (390.16..629.73)  | 0.85x ± 0.14 (0.67..1.03)    |
| Permute         | 499.10 ms ± 45.75 (419.08..616.50)  | 0.99x ± 0.16 (0.82..1.34)    |
| Queens          | 411.91 ms ± 42.95 (324.61..505.46)  | 1.05x ± 0.17 (0.88..1.26)    |
| QuickSort       | 113.25 ms ± 29.52 (79.06..170.63)   | 1.34x ± 0.44 (0.86..1.61)    |
| Recurse         | 439.98 ms ± 52.57 (377.61..569.28)  | 1.57x ± 0.20 (1.46..1.68)    |
| Sieve           | 766.07 ms ± 125.80 (605.18..957.13) | 0.98x ± 0.22 (0.73..1.18)    |
| Storage         | 132.40 ms ± 31.73 (88.56..208.50)   | 1.36x ± 0.36 (1.08..1.55)    |
| Sum             | 289.91 ms ± 43.83 (209.24..354.23)  | 1.70x ± 0.29 (1.46..1.88)    |
| Towers          | 559.00 ms ± 61.02 (466.87..657.74)  | 1.21x ± 0.27 (0.88..1.62)    |
| TreeSort        | 255.37 ms ± 40.04 (214.50..347.13)  | 0.88x ± 0.20 (0.65..1.15)    |
| WhileLoop       | 631.96 ms ± 85.14 (501.36..772.49)  | 1.66x ± 0.23 (1.58..1.76)    |
|                 |                                     |                              |
| Average Speedup |             (baseline)              | 1.35x ± 0.06 (0.85..1.70)    |
+-----------------+-------------------------------------+------------------------------+

The raw ReBench data files are available for download here: baseline and head

Bytecode interpreter
+-----------------+---------------------------------------+------------------------------+
| Benchmark       | master (base)                         | specialized-bytecodes (head) |
+-----------------+---------------------------------------+------------------------------+
| Bounce          | 96.18 ms ± 9.24 (89.12..115.82)       | 0.64x ± 0.12 (0.50..0.80)    |
| BubbleSort      | 132.08 ms ± 9.81 (118.62..149.13)     | 0.61x ± 0.12 (0.49..0.98)    |
| DeltaBlue       | 73.53 ms ± 9.68 (65.90..100.17)       | 0.61x ± 0.18 (0.46..0.92)    |
| Dispatch        | 91.85 ms ± 3.20 (87.96..98.58)        | 0.66x ± 0.20 (0.43..1.00)    |
| Fannkuch        | 59.80 ms ± 3.11 (57.45..68.22)        | 0.69x ± 0.18 (0.51..1.07)    |
| Fibonacci       | 160.84 ms ± 9.02 (149.47..179.83)     | 0.54x ± 0.07 (0.49..0.70)    |
| FieldLoop       | 237.43 ms ± 16.39 (217.28..263.04)    | 0.72x ± 0.09 (0.62..0.82)    |
| GraphSearch     | 42.26 ms ± 2.19 (38.82..45.23)        | 0.64x ± 0.21 (0.39..1.09)    |
| IntegerLoop     | 169.01 ms ± 9.95 (159.33..187.23)     | 0.56x ± 0.12 (0.40..0.71)    |
| JsonSmall       | 129.25 ms ± 22.76 (104.07..161.49)    | 0.71x ± 0.17 (0.57..0.91)    |
| List            | 130.15 ms ± 9.63 (119.52..145.39)     | 0.61x ± 0.11 (0.48..0.80)    |
| Loop            | 217.09 ms ± 13.27 (198.74..237.26)    | 0.60x ± 0.08 (0.51..0.75)    |
| Mandelbrot      | 141.47 ms ± 18.88 (126.28..179.41)    | 0.66x ± 0.14 (0.52..0.95)    |
| NBody           | 106.04 ms ± 7.98 (96.89..117.47)      | 0.62x ± 0.19 (0.40..0.98)    |
| PageRank        | 155.84 ms ± 12.89 (142.47..183.22)    | 0.70x ± 0.12 (0.56..0.83)    |
| Permute         | 140.00 ms ± 6.20 (130.20..150.71)     | 0.65x ± 0.09 (0.52..0.74)    |
| Queens          | 111.16 ms ± 7.15 (103.33..125.99)     | 0.67x ± 0.15 (0.49..0.87)    |
| QuickSort       | 38.78 ms ± 4.66 (33.84..49.10)        | 0.59x ± 0.20 (0.38..1.07)    |
| Recurse         | 134.54 ms ± 9.48 (121.67..149.04)     | 0.63x ± 0.11 (0.48..0.88)    |
| Richards        | 1818.53 ms ± 91.52 (1722.89..1978.56) | 0.66x ± 0.05 (0.58..0.70)    |
| Sieve           | 203.39 ms ± 11.12 (188.13..224.01)    | 0.60x ± 0.09 (0.52..0.73)    |
| Storage         | 43.23 ms ± 6.51 (36.63..55.33)        | 0.67x ± 0.21 (0.51..1.10)    |
| Sum             | 90.44 ms ± 12.25 (81.47..118.62)      | 0.72x ± 0.20 (0.57..1.14)    |
| Towers          | 157.22 ms ± 13.29 (142.09..188.52)    | 0.68x ± 0.12 (0.54..0.87)    |
| TreeSort        | 58.97 ms ± 5.21 (55.34..73.53)        | 0.71x ± 0.23 (0.48..1.08)    |
| WhileLoop       | 228.52 ms ± 17.63 (207.11..263.02)    | 0.70x ± 0.12 (0.57..0.93)    |
|                 |                                       |                              |
| Average Speedup |              (baseline)               | 0.65x ± 0.03 (0.54..0.72)    |
+-----------------+---------------------------------------+------------------------------+

The raw ReBench data files are available for download here: baseline and head

The benchmarks were run using ReBench v1.2.0
The statistical analysis was done using rebench-tabler v0.1.0

The source code of this benchmark runner is available as a GitHub Gist for more details about the setup

@som-rs-benchmarker
Copy link
Copy Markdown

som-rs-benchmarker Bot commented Feb 16, 2024

Here are the benchmark results for specialized-bytecodes (commit: 9740b81):

AST interpreter

The raw ReBench data files are available for download here: baseline and head

Bytecode interpreter

The raw ReBench data files are available for download here: baseline and head

The benchmarks were run using ReBench v1.2.0
The statistical analysis was done using rebench-tabler v0.1.0

The source code of this benchmark runner is available as a GitHub Gist for more details about the setup

@som-rs-benchmarker
Copy link
Copy Markdown

som-rs-benchmarker Bot commented Feb 16, 2024

Here are the benchmark results for specialized-bytecodes (commit: ea48424):

AST interpreter

The raw ReBench data files are available for download here: baseline and head

Bytecode interpreter
+-----------------+----------------------------------------+------------------------------+
| Benchmark       | master (base)                          | specialized-bytecodes (head) |
+-----------------+----------------------------------------+------------------------------+
| Bounce          | 101.62 ms ± 13.62 (86.33..127.43)      | 1.29x ± 0.20 (1.06..1.39)    |
| BubbleSort      | 151.45 ms ± 31.82 (117.51..223.87)     | 1.30x ± 0.29 (1.16..1.40)    |
| DeltaBlue       | 84.63 ms ± 12.69 (72.04..118.38)       | 1.28x ± 0.21 (1.10..1.41)    |
| Dispatch        | 108.12 ms ± 15.02 (91.16..140.67)      | 1.29x ± 0.18 (1.23..1.37)    |
| Fannkuch        | 65.82 ms ± 13.37 (55.20..110.42)       | 1.08x ± 0.32 (0.71..1.37)    |
| Fibonacci       | 176.46 ms ± 13.69 (153.89..211.23)     | 1.20x ± 0.14 (1.03..1.34)    |
| FieldLoop       | 249.16 ms ± 22.07 (214.42..298.80)     | 1.23x ± 0.13 (1.12..1.31)    |
| GraphSearch     | 51.99 ms ± 8.59 (41.84..66.13)         | 1.22x ± 0.28 (0.98..1.55)    |
| IntegerLoop     | 177.33 ms ± 15.89 (155.97..216.62)     | 1.04x ± 0.14 (0.91..1.18)    |
| JsonSmall       | 121.48 ms ± 13.16 (104.40..147.28)     | 1.19x ± 0.15 (1.04..1.29)    |
| List            | 130.39 ms ± 9.71 (120.09..158.41)      | 0.99x ± 0.10 (0.89..1.12)    |
| Loop            | 250.38 ms ± 21.06 (213.45..286.05)     | 1.19x ± 0.17 (1.01..1.35)    |
| Mandelbrot      | 145.58 ms ± 17.99 (132.01..214.79)     | 0.98x ± 0.17 (0.82..1.16)    |
| NBody           | 103.12 ms ± 8.10 (89.84..117.31)       | 0.97x ± 0.12 (0.81..1.10)    |
| PageRank        | 153.40 ms ± 16.72 (136.97..200.47)     | 1.15x ± 0.19 (0.93..1.27)    |
| Permute         | 153.53 ms ± 21.38 (124.98..222.39)     | 1.29x ± 0.21 (1.08..1.40)    |
| Queens          | 119.76 ms ± 24.54 (101.58..185.23)     | 1.17x ± 0.26 (1.00..1.36)    |
| QuickSort       | 36.87 ms ± 3.54 (32.41..48.14)         | 1.13x ± 0.18 (0.92..1.27)    |
| Recurse         | 150.05 ms ± 15.26 (131.85..191.08)     | 1.15x ± 0.16 (1.00..1.29)    |
| Richards        | 1883.86 ms ± 119.62 (1767.26..2315.73) | 1.16x ± 0.11 (0.99..1.24)    |
| Sieve           | 220.21 ms ± 25.17 (198.74..306.28)     | 1.13x ± 0.14 (1.08..1.23)    |
| Storage         | 45.32 ms ± 11.91 (35.98..70.69)        | 1.28x ± 0.34 (1.17..1.36)    |
| Sum             | 91.04 ms ± 11.01 (79.87..120.44)       | 1.18x ± 0.16 (1.05..1.28)    |
| Towers          | 158.86 ms ± 11.36 (138.92..191.31)     | 1.21x ± 0.15 (1.06..1.37)    |
| TreeSort        | 78.35 ms ± 30.86 (51.70..161.14)       | 1.50x ± 0.62 (1.13..1.68)    |
| WhileLoop       | 229.62 ms ± 27.56 (205.31..319.09)     | 1.15x ± 0.17 (0.95..1.27)    |
|                 |                                        |                              |
| Average Speedup |               (baseline)               | 1.18x ± 0.04 (0.97..1.50)    |
+-----------------+----------------------------------------+------------------------------+

The raw ReBench data files are available for download here: baseline and head

The benchmarks were run using ReBench v1.2.0
The statistical analysis was done using rebench-tabler v0.1.0

The source code of this benchmark runner is available as a GitHub Gist for more details about the setup

@som-rs-benchmarker
Copy link
Copy Markdown

som-rs-benchmarker Bot commented Feb 16, 2024

Here are the benchmark results for specialized-bytecodes (commit: 377b68e):

AST interpreter
+-----------------+----------------------------------------+------------------------------+
| Benchmark       | master (base)                          | specialized-bytecodes (head) |
+-----------------+----------------------------------------+------------------------------+
| Bounce          | 219.26 ms ± 26.35 (187.75..275.52)     | 0.98x ± 0.13 (0.91..1.05)    |
| BubbleSort      | 282.64 ms ± 17.67 (257.04..313.79)     | 0.96x ± 0.12 (0.80..1.09)    |
| DeltaBlue       | 177.56 ms ± 16.42 (161.56..214.37)     | 1.05x ± 0.12 (0.94..1.16)    |
| Dispatch        | 206.06 ms ± 13.41 (189.26..226.45)     | 0.99x ± 0.10 (0.82..1.08)    |
| Fannkuch        | 135.79 ms ± 8.33 (124.10..148.75)      | 1.00x ± 0.07 (0.96..1.05)    |
| Fibonacci       | 397.94 ms ± 15.75 (378.40..426.69)     | 0.98x ± 0.07 (0.86..1.08)    |
| FieldLoop       | 351.67 ms ± 15.88 (329.56..377.03)     | 0.97x ± 0.06 (0.91..1.01)    |
| GraphSearch     | 99.35 ms ± 13.93 (88.03..130.86)       | 1.05x ± 0.18 (0.93..1.22)    |
| IntegerLoop     | 354.19 ms ± 27.48 (324.35..400.55)     | 1.01x ± 0.10 (0.90..1.10)    |
| JsonSmall       | 232.64 ms ± 12.93 (215.00..257.54)     | 1.02x ± 0.08 (0.92..1.10)    |
| List            | 275.52 ms ± 14.24 (256.47..300.74)     | 0.98x ± 0.11 (0.79..1.10)    |
| Loop            | 486.07 ms ± 47.92 (431.93..597.99)     | 1.04x ± 0.12 (0.94..1.14)    |
| Mandelbrot      | 265.87 ms ± 11.22 (248.76..289.94)     | 0.90x ± 0.08 (0.79..1.00)    |
| NBody           | 232.83 ms ± 20.02 (209.32..274.75)     | 1.02x ± 0.13 (0.82..1.08)    |
| PageRank        | 310.82 ms ± 11.76 (295.72..337.83)     | 0.94x ± 0.09 (0.83..1.02)    |
| Permute         | 320.53 ms ± 18.69 (292.35..358.92)     | 0.96x ± 0.06 (0.93..0.99)    |
| Queens          | 279.43 ms ± 20.24 (250.88..307.45)     | 1.08x ± 0.10 (0.99..1.16)    |
| QuickSort       | 83.29 ms ± 9.27 (70.93..99.63)         | 1.04x ± 0.12 (0.97..1.12)    |
| Recurse         | 287.01 ms ± 12.58 (267.21..306.36)     | 0.97x ± 0.06 (0.91..1.04)    |
| Richards        | 4236.90 ms ± 103.01 (4130.42..4441.80) | 0.96x ± 0.03 (0.93..1.00)    |
| Sieve           | 470.29 ms ± 28.24 (442.36..541.81)     | 1.06x ± 0.10 (0.95..1.14)    |
| Storage         | 97.00 ms ± 16.10 (79.02..126.41)       | 1.10x ± 0.22 (0.85..1.22)    |
| Sum             | 176.49 ms ± 12.51 (157.68..196.95)     | 1.00x ± 0.11 (0.88..1.09)    |
| Towers          | 345.37 ms ± 40.15 (313.36..443.69)     | 1.02x ± 0.13 (0.92..1.10)    |
| TreeSort        | 191.87 ms ± 21.25 (159.48..227.82)     | 1.08x ± 0.17 (0.91..1.22)    |
| WhileLoop       | 385.89 ms ± 17.79 (363.87..416.67)     | 0.97x ± 0.09 (0.88..1.08)    |
|                 |                                        |                              |
| Average Speedup |               (baseline)               | 1.01x ± 0.02 (0.90..1.10)    |
+-----------------+----------------------------------------+------------------------------+

The raw ReBench data files are available for download here: baseline and head

Bytecode interpreter
+-----------------+---------------------------------------+------------------------------+
| Benchmark       | master (base)                         | specialized-bytecodes (head) |
+-----------------+---------------------------------------+------------------------------+
| Bounce          | 100.52 ms ± 5.11 (92.40..108.02)      | 1.22x ± 0.10 (1.07..1.33)    |
| BubbleSort      | 131.28 ms ± 8.09 (123.63..147.74)     | 1.08x ± 0.15 (0.83..1.19)    |
| DeltaBlue       | 80.64 ms ± 7.20 (71.99..93.36)        | 1.28x ± 0.19 (0.97..1.40)    |
| Dispatch        | 99.59 ms ± 4.88 (94.13..110.23)       | 1.13x ± 0.07 (1.05..1.22)    |
| Fannkuch        | 63.01 ms ± 5.38 (56.57..74.57)        | 1.21x ± 0.12 (1.11..1.29)    |
| Fibonacci       | 192.61 ms ± 25.60 (168.86..254.98)    | 1.26x ± 0.20 (1.02..1.38)    |
| FieldLoop       | 222.98 ms ± 8.73 (206.99..237.18)     | 1.11x ± 0.08 (1.04..1.25)    |
| GraphSearch     | 47.16 ms ± 8.02 (39.14..65.07)        | 1.02x ± 0.24 (0.82..1.36)    |
| IntegerLoop     | 182.98 ms ± 16.70 (162.65..205.33)    | 1.18x ± 0.18 (0.94..1.29)    |
| JsonSmall       | 112.58 ms ± 12.18 (98.47..137.75)     | 1.15x ± 0.14 (0.98..1.20)    |
| List            | 120.29 ms ± 10.64 (109.39..146.78)    | 1.08x ± 0.12 (0.95..1.17)    |
| Loop            | 243.04 ms ± 20.60 (223.26..288.72)    | 1.15x ± 0.13 (1.03..1.31)    |
| Mandelbrot      | 143.37 ms ± 11.61 (126.39..159.62)    | 1.06x ± 0.10 (0.99..1.15)    |
| NBody           | 98.00 ms ± 4.65 (92.53..105.54)       | 1.06x ± 0.11 (0.90..1.20)    |
| PageRank        | 153.75 ms ± 10.16 (140.29..174.92)    | 1.14x ± 0.11 (1.00..1.21)    |
| Permute         | 146.58 ms ± 10.07 (130.46..161.03)    | 1.08x ± 0.17 (0.85..1.28)    |
| Queens          | 111.86 ms ± 9.03 (100.23..130.07)     | 1.14x ± 0.14 (0.92..1.25)    |
| QuickSort       | 38.04 ms ± 4.31 (32.31..45.88)        | 1.11x ± 0.26 (0.80..1.38)    |
| Recurse         | 133.73 ms ± 6.99 (123.83..144.56)     | 1.05x ± 0.14 (0.88..1.23)    |
| Richards        | 1805.34 ms ± 83.86 (1709.07..1930.90) | 1.17x ± 0.07 (1.09..1.22)    |
| Sieve           | 199.41 ms ± 15.08 (184.74..227.57)    | 1.03x ± 0.12 (0.90..1.16)    |
| Storage         | 39.69 ms ± 1.99 (36.93..43.57)        | 0.99x ± 0.10 (0.87..1.14)    |
| Sum             | 101.19 ms ± 10.58 (87.23..118.56)     | 1.18x ± 0.20 (0.90..1.38)    |
| Towers          | 159.41 ms ± 11.41 (146.62..183.42)    | 1.16x ± 0.12 (0.99..1.28)    |
| TreeSort        | 61.03 ms ± 7.20 (54.57..75.08)        | 1.17x ± 0.20 (0.91..1.35)    |
| WhileLoop       | 229.33 ms ± 14.55 (212.84..259.58)    | 1.25x ± 0.10 (1.17..1.37)    |
|                 |                                       |                              |
| Average Speedup |              (baseline)               | 1.13x ± 0.03 (0.99..1.28)    |
+-----------------+---------------------------------------+------------------------------+

The raw ReBench data files are available for download here: baseline and head

The benchmarks were run using ReBench v1.2.0
The statistical analysis was done using rebench-tabler v0.1.0

The source code of this benchmark runner is available as a GitHub Gist for more details about the setup

@som-rs-benchmarker
Copy link
Copy Markdown

som-rs-benchmarker Bot commented Feb 16, 2024

Here are the benchmark results for specialized-bytecodes (commit: 24e63af):

AST interpreter
+-----------------+----------------------------------------+------------------------------+
| Benchmark       | master (base)                          | specialized-bytecodes (head) |
+-----------------+----------------------------------------+------------------------------+
| Bounce          | 218.64 ms ± 20.66 (197.89..281.33)     | 0.83x ± 0.19 (0.58..1.05)    |
| BubbleSort      | 310.39 ms ± 32.57 (263.29..386.06)     | 0.97x ± 0.14 (0.82..1.15)    |
| DeltaBlue       | 184.03 ms ± 15.91 (151.98..209.95)     | 1.02x ± 0.11 (0.92..1.12)    |
| Dispatch        | 220.34 ms ± 20.51 (187.56..253.39)     | 0.95x ± 0.12 (0.86..1.10)    |
| Fannkuch        | 136.26 ms ± 9.09 (124.72..158.84)      | 0.99x ± 0.10 (0.83..1.06)    |
| Fibonacci       | 440.97 ms ± 65.05 (380.82..697.95)     | 1.05x ± 0.19 (0.81..1.17)    |
| FieldLoop       | 364.49 ms ± 47.42 (314.00..505.54)     | 0.91x ± 0.15 (0.78..1.07)    |
| GraphSearch     | 96.82 ms ± 11.96 (84.23..125.59)       | 1.02x ± 0.16 (0.88..1.13)    |
| IntegerLoop     | 375.75 ms ± 36.81 (329.36..477.84)     | 0.99x ± 0.11 (0.89..1.10)    |
| JsonSmall       | 222.24 ms ± 19.48 (198.57..281.44)     | 0.88x ± 0.11 (0.76..1.02)    |
| List            | 285.13 ms ± 47.79 (253.20..474.50)     | 1.06x ± 0.19 (0.92..1.17)    |
| Loop            | 489.55 ms ± 26.30 (457.20..538.43)     | 1.00x ± 0.09 (0.92..1.15)    |
| Mandelbrot      | 302.16 ms ± 25.35 (270.37..364.73)     | 0.93x ± 0.15 (0.75..1.12)    |
| NBody           | 236.54 ms ± 20.11 (210.28..285.70)     | 0.90x ± 0.12 (0.74..1.02)    |
| PageRank        | 336.03 ms ± 30.33 (302.66..434.57)     | 0.95x ± 0.13 (0.82..1.12)    |
| Permute         | 343.65 ms ± 21.73 (307.36..398.29)     | 0.87x ± 0.18 (0.58..1.06)    |
| Queens          | 271.44 ms ± 28.71 (230.73..348.18)     | 0.97x ± 0.14 (0.83..1.09)    |
| QuickSort       | 87.93 ms ± 16.17 (76.88..137.58)       | 1.07x ± 0.21 (0.91..1.18)    |
| Recurse         | 292.88 ms ± 13.37 (265.05..310.32)     | 0.92x ± 0.08 (0.78..1.01)    |
| Richards        | 4568.11 ms ± 131.26 (4340.27..4745.18) | 0.97x ± 0.06 (0.88..1.05)    |
| Sieve           | 466.59 ms ± 26.62 (434.34..520.07)     | 0.93x ± 0.10 (0.75..1.02)    |
| Storage         | 92.87 ms ± 9.62 (81.13..122.56)        | 0.89x ± 0.12 (0.76..1.01)    |
| Sum             | 191.22 ms ± 15.81 (171.80..237.40)     | 0.95x ± 0.13 (0.81..1.08)    |
| Towers          | 365.80 ms ± 24.70 (323.61..414.85)     | 1.04x ± 0.09 (0.96..1.12)    |
| TreeSort        | 167.02 ms ± 12.77 (146.20..191.28)     | 0.93x ± 0.08 (0.88..1.02)    |
| WhileLoop       | 427.24 ms ± 39.76 (365.55..542.72)     | 0.96x ± 0.12 (0.85..1.10)    |
|                 |                                        |                              |
| Average Speedup |               (baseline)               | 0.96x ± 0.03 (0.83..1.07)    |
+-----------------+----------------------------------------+------------------------------+

The raw ReBench data files are available for download here: baseline and head

Bytecode interpreter
+-----------------+----------------------------------------+------------------------------+
| Benchmark       | master (base)                          | specialized-bytecodes (head) |
+-----------------+----------------------------------------+------------------------------+
| Bounce          | 106.75 ms ± 14.33 (87.34..134.09)      | 1.13x ± 0.21 (0.95..1.32)    |
| BubbleSort      | 128.33 ms ± 6.83 (121.92..143.85)      | 1.00x ± 0.09 (0.92..1.14)    |
| DeltaBlue       | 80.51 ms ± 11.38 (65.85..107.01)       | 0.99x ± 0.23 (0.70..1.28)    |
| Dispatch        | 106.93 ms ± 15.55 (87.41..146.47)      | 1.05x ± 0.23 (0.75..1.27)    |
| Fannkuch        | 63.45 ms ± 8.79 (51.87..80.47)         | 1.05x ± 0.23 (0.77..1.28)    |
| Fibonacci       | 186.66 ms ± 32.82 (150.44..311.59)     | 1.23x ± 0.23 (1.09..1.33)    |
| FieldLoop       | 243.26 ms ± 30.06 (203.03..343.16)     | 1.06x ± 0.16 (0.91..1.19)    |
| GraphSearch     | 46.68 ms ± 5.93 (39.70..62.64)         | 1.02x ± 0.20 (0.75..1.22)    |
| IntegerLoop     | 191.03 ms ± 21.93 (166.00..242.49)     | 1.20x ± 0.16 (1.07..1.32)    |
| JsonSmall       | 108.47 ms ± 8.87 (95.50..130.16)       | 0.96x ± 0.18 (0.73..1.12)    |
| List            | 133.52 ms ± 11.17 (123.71..158.36)     | 1.22x ± 0.12 (1.07..1.31)    |
| Loop            | 253.51 ms ± 23.56 (200.16..302.57)     | 1.13x ± 0.15 (0.93..1.27)    |
| Mandelbrot      | 150.95 ms ± 11.98 (132.52..171.66)     | 1.07x ± 0.10 (0.99..1.17)    |
| NBody           | 105.91 ms ± 9.43 (93.22..126.49)       | 0.88x ± 0.25 (0.50..1.16)    |
| PageRank        | 158.91 ms ± 25.08 (132.29..246.78)     | 1.09x ± 0.20 (0.90..1.28)    |
| Permute         | 155.57 ms ± 21.51 (126.01..203.93)     | 1.08x ± 0.18 (0.92..1.22)    |
| Queens          | 122.45 ms ± 14.14 (109.02..165.21)     | 1.03x ± 0.17 (0.89..1.22)    |
| QuickSort       | 37.57 ms ± 4.79 (31.62..50.16)         | 1.06x ± 0.23 (0.76..1.28)    |
| Recurse         | 153.68 ms ± 24.06 (129.05..216.04)     | 1.09x ± 0.23 (0.85..1.25)    |
| Richards        | 1929.61 ms ± 117.03 (1830.33..2352.64) | 1.13x ± 0.09 (1.00..1.19)    |
| Sieve           | 215.65 ms ± 25.76 (190.94..309.13)     | 1.11x ± 0.20 (0.83..1.27)    |
| Storage         | 44.62 ms ± 7.60 (35.46..62.33)         | 1.06x ± 0.26 (0.76..1.25)    |
| Sum             | 91.37 ms ± 8.97 (79.03..117.00)        | 1.07x ± 0.14 (0.94..1.20)    |
| Towers          | 160.78 ms ± 15.86 (144.53..197.90)     | 1.18x ± 0.15 (1.03..1.28)    |
| TreeSort        | 72.60 ms ± 9.26 (57.73..90.36)         | 1.17x ± 0.26 (0.84..1.52)    |
| WhileLoop       | 245.91 ms ± 23.50 (217.68..320.60)     | 1.02x ± 0.17 (0.79..1.31)    |
|                 |                                        |                              |
| Average Speedup |               (baseline)               | 1.08x ± 0.04 (0.88..1.23)    |
+-----------------+----------------------------------------+------------------------------+

The raw ReBench data files are available for download here: baseline and head

The benchmarks were run using ReBench v1.2.0
The statistical analysis was done using rebench-tabler v0.1.0

The source code of this benchmark runner is available as a GitHub Gist for more details about the setup

@som-rs-benchmarker
Copy link
Copy Markdown

som-rs-benchmarker Bot commented Feb 16, 2024

Here are the benchmark results for specialized-bytecodes (commit: d94bb24):

AST interpreter

The raw ReBench data files are available for download here: baseline and head

Bytecode interpreter

The raw ReBench data files are available for download here: baseline and head

The benchmarks were run using ReBench v1.2.0
The statistical analysis was done using rebench-tabler v0.1.0

The source code of this benchmark runner is available as a GitHub Gist for more details about the setup

@OctaveLarose
Copy link
Copy Markdown
Contributor Author

I think the test runner didn't appreciate my accidental spam. Either way, I've finished with implementing your changes and writing tests

Copy link
Copy Markdown
Owner

@Hirevo Hirevo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the test runner didn't appreciate my accidental spam.

Yeah, there is no pipelining in place yet, so everything kinda ran at once.
I should have put it in place by now, sorry about that.
I'll go and implement this, it shouldn't take too much effort to build.

Either way, I've finished with implementing your changes and writing tests.

Ok, the changes look all good to me, so let's merge this !
Thanks a bunch for all this work !

@Hirevo Hirevo merged commit 06dbd7a into Hirevo:master Feb 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

C-performance Category: Performance improvements M-interpreter Module: Interpreter P-medium Priority: Medium

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants