Skip to content
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

More bytecodes #861

Merged
merged 9 commits into from
Oct 16, 2020
Merged

More bytecodes #861

merged 9 commits into from
Oct 16, 2020

Conversation

HalidOdat
Copy link
Member

@HalidOdat HalidOdat commented Oct 13, 2020

It changes the following:

  • Added -, *, /, **, %, &, |, <<, >>, >>>, <, >, ==, ===, !=, !==, =>, <=, in, instanceof operators
  • Added unary operators +, -, typeof, void, !, ~
  • Added undefined, null, bool, string, bigint, rational literals
  • When the vm flag is set we use the eval bytecode version and when its not we use the regular.

@HalidOdat HalidOdat closed this Oct 13, 2020
@HalidOdat HalidOdat reopened this Oct 13, 2020
@HalidOdat HalidOdat marked this pull request as draft October 13, 2020 20:47
boa/src/vm/mod.rs Outdated Show resolved Hide resolved
@github-actions
Copy link

Benchmark for c9bfce3

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 363.5±0.34ns 365.0±0.27ns -0.41%
Arithmetic operations (Full) 235.7±0.40µs 234.4±0.48µs +0.55%
Array access (Execution) 7.8±0.04µs 7.8±0.02µs 0.00%
Array access (Full) 257.6±0.82µs 255.5±0.61µs +0.82%
Array creation (Execution) 2.8±0.00ms 2.8±0.00ms 0.00%
Array creation (Full) 3.1±0.00ms 3.1±0.01ms 0.00%
Array pop (Execution) 1043.2±4.08µs 1038.8±3.87µs +0.42%
Array pop (Full) 1499.6±2.11µs 1503.5±2.01µs -0.26%
Boolean Object Access (Execution) 4.6±0.01µs 4.6±0.01µs 0.00%
Boolean Object Access (Full) 250.2±0.59µs 246.0±0.28µs +1.71%
Clean js (Execution) 694.2±6.14µs 696.4±4.65µs -0.32%
Clean js (Full) 998.0±11.11µs 996.6±6.37µs +0.14%
Clean js (Parser) 37.0±0.08µs 37.1±0.05µs -0.27%
Create Realm 467.2±2.49ns 475.3±0.78ns -1.70%
Dynamic Object Property Access (Execution) 5.6±0.01µs 5.6±0.01µs 0.00%
Dynamic Object Property Access (Full) 247.9±0.37µs 250.9±0.70µs -1.20%
Expression (Parser) 6.8±0.03µs 6.7±0.01µs +1.49%
Fibonacci (Execution) 818.8±1.93µs 825.7±2.52µs -0.84%
Fibonacci (Full) 1084.1±1.34µs 1093.5±2.33µs -0.86%
For loop (Execution) 22.7±0.14µs 22.3±0.06µs +1.79%
For loop (Full) 272.8±0.77µs 272.0±0.74µs +0.29%
For loop (Parser) 18.3±0.03µs 18.2±0.03µs +0.55%
Goal Symbols (Parser) 12.6±0.03µs 12.6±0.02µs 0.00%
Hello World (Parser) 3.2±0.01µs 3.2±0.01µs 0.00%
Long file (Parser) 767.0±0.92ns 763.9±0.94ns +0.41%
Mini js (Execution) 624.7±3.53µs 625.1±3.24µs -0.06%
Mini js (Full) 903.1±3.35µs 901.6±3.97µs +0.17%
Mini js (Parser) 32.3±0.07µs 32.4±0.44µs -0.31%
Number Object Access (Execution) 3.7±0.01µs 3.7±0.01µs 0.00%
Number Object Access (Full) 247.4±0.29µs 243.3±0.65µs +1.69%
Object Creation (Execution) 4.8±0.01µs 4.8±0.01µs 0.00%
Object Creation (Full) 248.1±0.32µs 243.9±0.36µs +1.72%
RegExp (Execution) 9.3±0.02µs 9.3±0.02µs 0.00%
RegExp (Full) 250.6±0.40µs 251.1±0.84µs -0.20%
RegExp Literal (Execution) 10.3±0.05µs 10.3±0.03µs 0.00%
RegExp Literal (Full) 252.9±0.58µs 255.8±9.26µs -1.13%
RegExp Literal Creation (Execution) 9.3±0.02µs 9.3±0.03µs 0.00%
RegExp Literal Creation (Full) 250.3±0.45µs 249.6±3.34µs +0.28%
Static Object Property Access (Execution) 5.0±0.01µs 5.0±0.01µs 0.00%
Static Object Property Access (Full) 245.8±0.45µs 249.1±8.91µs -1.32%
String Object Access (Execution) 7.0±0.05µs 7.0±0.06µs 0.00%
String Object Access (Full) 254.4±1.16µs 251.7±0.63µs +1.07%
String comparison (Execution) 6.5±0.04µs 6.5±0.04µs 0.00%
String comparison (Full) 250.5±1.73µs 251.3±0.31µs -0.32%
String concatenation (Execution) 5.2±0.03µs 5.3±0.02µs -1.89%
String concatenation (Full) 246.2±0.34µs 245.1±0.44µs +0.45%
String copy (Execution) 4.1±0.01µs 4.1±0.02µs 0.00%
String copy (Full) 241.8±0.46µs 237.2±0.31µs +1.94%
Symbols (Execution) 3.5±0.01µs 3.5±0.01µs 0.00%
Symbols (Full) 225.4±0.56µs 225.4±0.37µs 0.00%

@github-actions
Copy link

Benchmark for 8385a28

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 356.0±13.28ns 352.2±10.86ns +1.08%
Arithmetic operations (Full) 251.2±9.46µs 242.0±11.75µs +3.80%
Array access (Execution) 8.3±0.27µs 8.1±0.45µs +2.47%
Array access (Full) 266.3±8.78µs 267.0±15.27µs -0.26%
Array creation (Execution) 2.8±0.07ms 2.8±0.14ms 0.00%
Array creation (Full) 3.0±0.14ms 3.0±0.07ms 0.00%
Array pop (Execution) 1021.2±37.22µs 996.1±31.08µs +2.52%
Array pop (Full) 1463.7±45.88µs 1461.0±37.59µs +0.18%
Boolean Object Access (Execution) 4.7±0.15µs 4.6±0.15µs +2.17%
Boolean Object Access (Full) 260.0±7.62µs 255.5±5.97µs +1.76%
Clean js (Execution) 707.9±25.11µs 711.5±25.06µs -0.51%
Clean js (Full) 1026.6±41.03µs 997.4±28.39µs +2.93%
Clean js (Parser) 38.0±2.94µs 38.5±1.69µs -1.30%
Create Realm 497.5±18.56ns 464.5±17.47ns +7.10%
Dynamic Object Property Access (Execution) 6.0±0.14µs 5.8±0.20µs +3.45%
Dynamic Object Property Access (Full) 270.6±10.21µs 259.3±7.94µs +4.36%
Expression (Parser) 6.9±0.20µs 7.0±0.30µs -1.43%
Fibonacci (Execution) 908.2±34.40µs 869.7±22.75µs +4.43%
Fibonacci (Full) 1133.2±40.40µs 1143.7±53.10µs -0.92%
For loop (Execution) 24.0±0.64µs 23.4±0.78µs +2.56%
For loop (Full) 287.1±9.30µs 283.2±10.55µs +1.38%
For loop (Parser) 18.3±0.81µs 18.5±0.67µs -1.08%
Goal Symbols (Parser) 12.6±0.62µs 13.1±0.70µs -3.82%
Hello World (Parser) 3.3±0.14µs 3.4±0.28µs -2.94%
Long file (Parser) 781.7±47.26ns 786.7±34.28ns -0.64%
Mini js (Execution) 624.6±25.39µs 626.3±19.13µs -0.27%
Mini js (Full) 908.9±35.19µs 899.1±48.59µs +1.09%
Mini js (Parser) 34.4±3.13µs 33.6±1.15µs +2.38%
Number Object Access (Execution) 3.7±0.14µs 3.6±0.11µs +2.78%
Number Object Access (Full) 262.3±11.17µs 262.4±8.01µs -0.04%
Object Creation (Execution) 5.1±0.24µs 5.0±0.70µs +2.00%
Object Creation (Full) 257.1±8.34µs 256.1±6.33µs +0.39%
RegExp (Execution) 9.6±0.36µs 9.6±0.42µs 0.00%
RegExp (Full) 270.5±39.81µs 266.6±10.79µs +1.46%
RegExp Literal (Execution) 10.6±0.32µs 10.5±0.36µs +0.95%
RegExp Literal (Full) 276.9±15.08µs 270.9±7.84µs +2.21%
RegExp Literal Creation (Execution) 9.7±0.33µs 9.6±0.60µs +1.04%
RegExp Literal Creation (Full) 260.7±10.33µs 265.2±11.97µs -1.70%
Static Object Property Access (Execution) 5.3±0.13µs 5.1±0.24µs +3.92%
Static Object Property Access (Full) 257.5±7.83µs 254.9±7.22µs +1.02%
String Object Access (Execution) 7.2±0.39µs 7.0±0.28µs +2.86%
String Object Access (Full) 266.5±9.08µs 258.2±6.92µs +3.21%
String comparison (Execution) 6.5±0.21µs 6.7±0.30µs -2.99%
String comparison (Full) 264.1±9.83µs 261.9±9.62µs +0.84%
String concatenation (Execution) 5.5±0.17µs 5.4±0.19µs +1.85%
String concatenation (Full) 253.7±9.00µs 259.2±10.86µs -2.12%
String copy (Execution) 4.2±0.13µs 4.2±0.13µs 0.00%
String copy (Full) 257.9±12.49µs 249.2±8.44µs +3.49%
Symbols (Execution) 3.7±0.12µs 3.6±0.22µs +2.78%
Symbols (Full) 235.5±11.33µs 232.3±10.85µs +1.38%

@github-actions
Copy link

Benchmark for c915a2d

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 315.4±11.92ns 308.0±15.36ns +2.40%
Arithmetic operations (Full) 213.8±10.62µs 201.2±9.74µs +6.26%
Array access (Execution) 6.8±0.30µs 7.0±0.29µs -2.86%
Array access (Full) 219.3±9.00µs 219.4±8.05µs -0.05%
Array creation (Execution) 2.4±0.09ms 2.6±0.08ms -7.69%
Array creation (Full) 2.7±0.10ms 2.7±0.10ms 0.00%
Array pop (Execution) 897.8±40.73µs 959.8±27.58µs -6.46%
Array pop (Full) 1271.8±48.73µs 1262.9±46.64µs +0.70%
Boolean Object Access (Execution) 4.0±0.18µs 4.3±0.10µs -6.98%
Boolean Object Access (Full) 209.4±9.16µs 210.5±11.63µs -0.52%
Clean js (Execution) 611.0±31.46µs 611.0±33.02µs 0.00%
Clean js (Full) 912.0±33.95µs 872.2±49.95µs +4.56%
Clean js (Parser) 33.9±1.08µs 31.0±1.71µs +9.35%
Create Realm 400.1±14.77ns 464.9±12.09ns -13.94%
Dynamic Object Property Access (Execution) 4.7±0.22µs 5.1±0.19µs -7.84%
Dynamic Object Property Access (Full) 218.9±10.89µs 212.0±9.03µs +3.25%
Expression (Parser) 6.4±0.18µs 6.5±0.32µs -1.54%
Fibonacci (Execution) 750.4±38.92µs 749.2±22.94µs +0.16%
Fibonacci (Full) 947.3±42.65µs 931.0±48.64µs +1.75%
For loop (Execution) 19.1±0.70µs 20.7±0.72µs -7.73%
For loop (Full) 230.9±9.30µs 231.8±10.96µs -0.39%
For loop (Parser) 17.2±0.48µs 17.1±0.77µs +0.58%
Goal Symbols (Parser) 11.7±0.37µs 10.7±0.63µs +9.35%
Hello World (Parser) 3.0±0.08µs 3.1±0.05µs -3.23%
Long file (Parser) 712.7±22.00ns 731.5±40.59ns -2.57%
Mini js (Execution) 543.2±28.26µs 541.0±24.90µs +0.41%
Mini js (Full) 789.7±46.72µs 792.3±43.34µs -0.33%
Mini js (Parser) 29.8±0.88µs 28.7±2.26µs +3.83%
Number Object Access (Execution) 3.3±0.18µs 3.7±0.10µs -10.81%
Number Object Access (Full) 209.9±11.37µs 204.3±9.74µs +2.74%
Object Creation (Execution) 4.2±0.19µs 4.2±0.25µs 0.00%
Object Creation (Full) 214.4±8.86µs 213.8±9.88µs +0.28%
RegExp (Execution) 7.9±0.34µs 8.5±0.31µs -7.06%
RegExp (Full) 225.7±11.07µs 214.6±8.84µs +5.17%
RegExp Literal (Execution) 9.1±0.43µs 9.4±0.37µs -3.19%
RegExp Literal (Full) 236.7±8.59µs 230.7±12.23µs +2.60%
RegExp Literal Creation (Execution) 7.9±0.43µs 8.5±0.32µs -7.06%
RegExp Literal Creation (Full) 214.6±9.09µs 216.4±10.00µs -0.83%
Static Object Property Access (Execution) 4.5±0.25µs 4.5±0.18µs 0.00%
Static Object Property Access (Full) 213.6±9.26µs 211.0±11.10µs +1.23%
String Object Access (Execution) 6.0±0.31µs 6.5±0.23µs -7.69%
String Object Access (Full) 220.0±8.97µs 210.6±10.92µs +4.46%
String comparison (Execution) 5.5±0.22µs 6.1±0.16µs -9.84%
String comparison (Full) 220.4±9.85µs 211.5±12.00µs +4.21%
String concatenation (Execution) 4.5±0.22µs 4.8±0.12µs -6.25%
String concatenation (Full) 208.1±11.48µs 212.7±9.91µs -2.16%
String copy (Execution) 3.4±0.16µs 3.8±0.11µs -10.53%
String copy (Full) 205.4±11.30µs 201.7±9.14µs +1.83%
Symbols (Execution) 2.9±0.14µs 3.2±0.09µs -9.38%
Symbols (Full) 197.3±7.58µs 196.6±9.14µs +0.36%

@github-actions
Copy link

Benchmark for b87d3c7

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 362.6±6.78ns 362.5±16.62ns +0.03%
Arithmetic operations (Full) 259.4±9.05µs 257.8±8.28µs +0.62%
Array access (Execution) 8.4±0.44µs 8.2±0.19µs +2.44%
Array access (Full) 287.8±9.79µs 274.5±7.43µs +4.85%
Array creation (Execution) 2.9±0.08ms 2.9±0.09ms 0.00%
Array creation (Full) 3.1±0.07ms 3.1±0.06ms 0.00%
Array pop (Execution) 1036.9±41.49µs 1034.5±23.47µs +0.23%
Array pop (Full) 1524.1±55.20µs 1519.6±37.60µs +0.30%
Boolean Object Access (Execution) 4.7±0.15µs 4.7±0.16µs 0.00%
Boolean Object Access (Full) 277.4±7.66µs 269.5±8.85µs +2.93%
Clean js (Execution) 735.4±26.66µs 733.9±43.01µs +0.20%
Clean js (Full) 1043.4±36.32µs 1039.5±35.85µs +0.38%
Clean js (Parser) 40.0±0.92µs 39.6±1.39µs +1.01%
Create Realm 501.7±12.74ns 480.2±14.54ns +4.48%
Dynamic Object Property Access (Execution) 6.1±0.23µs 5.9±0.15µs +3.39%
Dynamic Object Property Access (Full) 280.2±7.83µs 275.7±8.29µs +1.63%
Expression (Parser) 7.4±0.18µs 7.2±0.21µs +2.78%
Fibonacci (Execution) 904.7±26.01µs 895.8±18.26µs +0.99%
Fibonacci (Full) 1198.5±21.27µs 1209.2±37.19µs -0.88%
For loop (Execution) 24.1±0.91µs 23.8±0.63µs +1.26%
For loop (Full) 297.7±9.98µs 292.8±8.27µs +1.67%
For loop (Parser) 19.1±0.81µs 19.0±0.47µs +0.53%
Goal Symbols (Parser) 13.0±0.37µs 13.0±0.45µs 0.00%
Hello World (Parser) 3.4±0.24µs 3.4±0.07µs 0.00%
Long file (Parser) 841.8±16.54ns 844.7±33.63ns -0.34%
Mini js (Execution) 644.9±18.37µs 644.0±17.65µs +0.14%
Mini js (Full) 941.6±29.64µs 929.7±18.03µs +1.28%
Mini js (Parser) 35.0±1.11µs 34.5±0.80µs +1.45%
Number Object Access (Execution) 3.8±0.12µs 3.7±0.17µs +2.70%
Number Object Access (Full) 271.9±5.05µs 266.8±9.85µs +1.91%
Object Creation (Execution) 5.2±0.42µs 5.0±0.11µs +4.00%
Object Creation (Full) 279.5±8.41µs 266.0±15.86µs +5.08%
RegExp (Execution) 9.9±0.24µs 9.9±0.52µs 0.00%
RegExp (Full) 283.2±7.80µs 270.1±9.87µs +4.85%
RegExp Literal (Execution) 11.0±0.32µs 10.9±0.31µs +0.92%
RegExp Literal (Full) 278.9±10.37µs 272.0±8.54µs +2.54%
RegExp Literal Creation (Execution) 9.9±0.35µs 9.9±0.69µs 0.00%
RegExp Literal Creation (Full) 277.1±6.46µs 266.1±9.94µs +4.13%
Static Object Property Access (Execution) 5.4±0.22µs 5.2±0.16µs +3.85%
Static Object Property Access (Full) 271.7±6.87µs 265.5±8.83µs +2.34%
String Object Access (Execution) 7.3±0.16µs 7.2±0.36µs +1.39%
String Object Access (Full) 282.8±7.33µs 277.5±7.48µs +1.91%
String comparison (Execution) 6.7±0.22µs 6.8±0.18µs -1.47%
String comparison (Full) 277.2±6.34µs 269.1±11.69µs +3.01%
String concatenation (Execution) 5.5±0.29µs 5.5±0.14µs 0.00%
String concatenation (Full) 279.3±19.02µs 258.8±7.84µs +7.92%
String copy (Execution) 4.4±0.11µs 4.4±0.22µs 0.00%
String copy (Full) 262.3±6.95µs 267.7±7.13µs -2.02%
Symbols (Execution) 3.7±0.12µs 3.6±0.11µs +2.78%
Symbols (Full) 246.2±11.26µs 239.8±7.84µs +2.67%

@HalidOdat HalidOdat added enhancement New feature or request performance Performance related changes and issues labels Oct 14, 2020
@github-actions
Copy link

Benchmark for fe7da1c

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 350.2±8.54ns 359.2±5.19ns -2.51%
Arithmetic operations (Full) 229.9±3.14µs 232.1±2.12µs -0.95%
Array access (Execution) 7.6±0.14µs 7.4±0.23µs +2.70%
Array access (Full) 244.8±5.51µs 243.5±7.40µs +0.53%
Array creation (Execution) 2.7±0.05ms 2.7±0.08ms 0.00%
Array creation (Full) 3.0±0.06ms 2.9±0.09ms +3.45%
Array pop (Execution) 1001.8±23.05µs 1046.5±70.11µs -4.27%
Array pop (Full) 1481.8±35.68µs 1433.1±40.32µs +3.40%
Boolean Object Access (Execution) 4.5±0.10µs 4.4±0.13µs +2.27%
Boolean Object Access (Full) 235.4±5.93µs 242.9±5.69µs -3.09%
Clean js (Execution) 666.6±17.21µs 676.1±13.37µs -1.41%
Clean js (Full) 975.0±19.47µs 979.3±13.21µs -0.44%
Clean js (Parser) 35.2±0.78µs 35.0±1.43µs +0.57%
Create Realm 457.7±24.16ns 448.4±11.38ns +2.07%
Dynamic Object Property Access (Execution) 5.4±0.12µs 5.4±0.15µs 0.00%
Dynamic Object Property Access (Full) 245.5±4.12µs 234.8±8.35µs +4.56%
Expression (Parser) 6.8±0.30µs 6.3±0.21µs +7.94%
Fibonacci (Execution) 792.2±17.31µs 760.8±20.53µs +4.13%
Fibonacci (Full) 1050.5±28.85µs 1026.3±29.03µs +2.36%
For loop (Execution) 21.4±0.51µs 21.8±0.60µs -1.83%
For loop (Full) 260.0±5.88µs 265.1±6.14µs -1.92%
For loop (Parser) 17.8±0.25µs 17.1±0.56µs +4.09%
Goal Symbols (Parser) 12.0±0.30µs 12.1±0.22µs -0.83%
Hello World (Parser) 3.1±0.05µs 3.0±0.12µs +3.33%
Long file (Parser) 763.6±43.67ns 724.9±24.80ns +5.34%
Mini js (Execution) 614.8±28.47µs 587.3±20.95µs +4.68%
Mini js (Full) 876.3±17.89µs 836.7±24.70µs +4.73%
Mini js (Parser) 31.0±0.79µs 31.5±0.82µs -1.59%
Number Object Access (Execution) 3.6±0.08µs 3.5±0.13µs +2.86%
Number Object Access (Full) 232.6±4.94µs 239.5±5.09µs -2.88%
Object Creation (Execution) 4.6±0.11µs 4.7±0.19µs -2.13%
Object Creation (Full) 234.7±5.34µs 231.6±7.10µs +1.34%
RegExp (Execution) 8.9±0.23µs 8.9±0.32µs 0.00%
RegExp (Full) 240.2±6.11µs 245.0±7.13µs -1.96%
RegExp Literal (Execution) 9.9±0.21µs 9.8±0.31µs +1.02%
RegExp Literal (Full) 248.6±4.11µs 240.2±16.44µs +3.50%
RegExp Literal Creation (Execution) 8.8±0.21µs 9.0±0.26µs -2.22%
RegExp Literal Creation (Full) 239.0±4.35µs 236.1±8.78µs +1.23%
Static Object Property Access (Execution) 4.9±0.09µs 4.6±0.18µs +6.52%
Static Object Property Access (Full) 236.8±4.99µs 232.8±7.35µs +1.72%
String Object Access (Execution) 6.7±0.18µs 6.6±0.24µs +1.52%
String Object Access (Full) 244.5±4.97µs 243.2±6.33µs +0.53%
String comparison (Execution) 6.2±0.17µs 6.2±0.19µs 0.00%
String comparison (Full) 238.8±5.46µs 245.2±4.94µs -2.61%
String concatenation (Execution) 5.1±0.14µs 5.0±0.14µs +2.00%
String concatenation (Full) 236.8±4.96µs 231.3±7.08µs +2.38%
String copy (Execution) 3.9±0.23µs 3.8±0.13µs +2.63%
String copy (Full) 226.9±5.62µs 230.6±8.02µs -1.60%
Symbols (Execution) 3.3±0.07µs 3.3±0.13µs 0.00%
Symbols (Full) 223.8±7.29µs 220.1±5.66µs +1.68%

@github-actions
Copy link

Benchmark for b2e0a6d

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 397.5±14.72ns 398.8±22.17ns -0.33%
Arithmetic operations (Full) 261.8±12.15µs 266.1±14.34µs -1.62%
Array access (Execution) 8.6±0.29µs 8.7±0.25µs -1.15%
Array access (Full) 290.5±14.47µs 291.4±18.72µs -0.31%
Array creation (Execution) 3.0±0.14ms 2.8±0.14ms +7.14%
Array creation (Full) 3.2±0.13ms 3.2±0.14ms 0.00%
Array pop (Execution) 1079.5±62.39µs 1015.7±40.65µs +6.28%
Array pop (Full) 1552.0±63.87µs 1574.0±75.05µs -1.40%
Boolean Object Access (Execution) 5.1±0.18µs 5.1±0.33µs 0.00%
Boolean Object Access (Full) 282.7±11.16µs 287.7±12.76µs -1.74%
Clean js (Execution) 778.9±50.42µs 744.9±36.18µs +4.56%
Clean js (Full) 1044.1±54.23µs 1096.8±66.03µs -4.80%
Clean js (Parser) 39.5±1.76µs 41.6±1.61µs -5.05%
Create Realm 502.5±27.37ns 507.7±19.67ns -1.02%
Dynamic Object Property Access (Execution) 6.4±0.28µs 6.1±0.27µs +4.92%
Dynamic Object Property Access (Full) 286.8±13.20µs 295.1±9.94µs -2.81%
Expression (Parser) 7.2±0.50µs 7.5±0.35µs -4.00%
Fibonacci (Execution) 965.1±47.79µs 936.4±31.25µs +3.06%
Fibonacci (Full) 1269.8±74.47µs 1250.3±44.66µs +1.56%
For loop (Execution) 24.2±1.17µs 25.8±1.88µs -6.20%
For loop (Full) 323.8±59.53µs 307.8±12.10µs +5.20%
For loop (Parser) 19.0±0.81µs 19.6±0.53µs -3.06%
Goal Symbols (Parser) 13.1±0.64µs 13.3±0.64µs -1.50%
Hello World (Parser) 3.4±0.14µs 3.5±0.14µs -2.86%
Long file (Parser) 805.8±29.36ns 876.0±73.30ns -8.01%
Mini js (Execution) 668.8±28.75µs 662.7±19.91µs +0.92%
Mini js (Full) 955.1±35.62µs 983.0±40.58µs -2.84%
Mini js (Parser) 34.9±1.06µs 35.7±0.95µs -2.24%
Number Object Access (Execution) 4.0±0.16µs 3.9±0.18µs +2.56%
Number Object Access (Full) 287.3±10.35µs 286.9±11.41µs +0.14%
Object Creation (Execution) 5.2±0.14µs 5.3±0.26µs -1.89%
Object Creation (Full) 285.1±13.52µs 290.0±16.00µs -1.69%
RegExp (Execution) 10.4±0.33µs 10.2±0.53µs +1.96%
RegExp (Full) 284.5±13.13µs 292.0±14.28µs -2.57%
RegExp Literal (Execution) 11.6±0.44µs 11.0±0.40µs +5.45%
RegExp Literal (Full) 286.7±14.89µs 297.6±8.64µs -3.66%
RegExp Literal Creation (Execution) 10.4±0.53µs 9.9±0.60µs +5.05%
RegExp Literal Creation (Full) 288.5±9.30µs 289.0±15.61µs -0.17%
Static Object Property Access (Execution) 5.5±0.22µs 5.5±0.23µs 0.00%
Static Object Property Access (Full) 282.5±14.48µs 280.9±11.76µs +0.57%
String Object Access (Execution) 7.6±0.21µs 7.4±0.35µs +2.70%
String Object Access (Full) 281.9±13.78µs 283.4±9.46µs -0.53%
String comparison (Execution) 7.2±0.28µs 7.0±0.29µs +2.86%
String comparison (Full) 292.4±16.55µs 303.5±8.18µs -3.66%
String concatenation (Execution) 5.9±0.29µs 5.7±0.22µs +3.51%
String concatenation (Full) 272.3±9.78µs 278.7±9.88µs -2.30%
String copy (Execution) 4.6±0.15µs 4.6±0.23µs 0.00%
String copy (Full) 268.1±11.30µs 281.9±12.30µs -4.90%
Symbols (Execution) 3.7±0.15µs 3.7±0.17µs 0.00%
Symbols (Full) 259.2±15.01µs 248.3±11.49µs +4.39%

@jasonwilliams
Copy link
Member

@HalidOdat anything else you want to do on this or shall we merge?

@HalidOdat
Copy link
Member Author

@HalidOdat anything else you want to do on this or shall we merge?

We can merge this and I can add more later on (in another PR, I don't have much free time this week).

@HalidOdat HalidOdat marked this pull request as ready for review October 16, 2020 05:35
@HalidOdat HalidOdat added this to the v0.11.0 milestone Oct 16, 2020
@jasonwilliams jasonwilliams merged commit a4503a4 into vm2 Oct 16, 2020
@HalidOdat HalidOdat deleted the more-bytecode branch October 16, 2020 10:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request performance Performance related changes and issues
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants