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

Backport var declaration and reference resolving performance improvements #1841

Merged
merged 2 commits into from
Apr 26, 2024

Conversation

lahma
Copy link
Collaborator

@lahma lahma commented Apr 26, 2024

Backport #1839

As spec requirements were loosened, makes sense to backport to 3.x. There's performance improvements from now needing to keep track of var global scope names. As Jint takes conformance over performance I believe this is one of the thing that has caused some perf difference compared to more relaxed interpreters.

Jint.Benchmark.DromaeoBenchmark

Diff Method Prepared Toolchain FileName Mean Error Allocated
Old Run False Default dromaeo-3d-cube 23.065 ms 0.4453 ms 6315.24 KB
New False Default 23.154 ms (0%) 0.1150 ms 6315.24 KB (0%)
Old Run False Default dromaeo-core-eval 3.974 ms 0.0414 ms 327.5 KB
New False Default 4.470 ms (+12%) 0.0272 ms 327.5 KB (0%)
Old Run False Default dromaeo-object-array 43.011 ms 0.2208 ms 100366.86 KB
New False Default 42.965 ms (0%) 0.2314 ms 100366.84 KB (0%)
Old Run False Default droma(...)egexp [21] 163.435 ms 3.1650 ms 169264.07 KB
New False Default 149.457 ms (-9%) 2.2511 ms 151085.44 KB (-11%)
Old Run False Default droma(...)tring [21] 258.186 ms 5.1544 ms 1321535.77 KB
New False Default 254.019 ms (-2%) 5.3817 ms 1315881.84 KB (0%)
Old Run False Default droma(...)ase64 [21] 52.494 ms 0.2681 ms 6052.13 KB
New False Default 47.682 ms (-9%) 0.3240 ms 2372.22 KB (-61%)
Old Run True Default dromaeo-3d-cube 21.725 ms 0.0881 ms 5966.66 KB
New True Default 22.114 ms (+2%) 0.0699 ms 5966.65 KB (0%)
Old Run True Default dromaeo-core-eval 4.275 ms 0.0236 ms 312.33 KB
New True Default 4.201 ms (-2%) 0.0206 ms 312.33 KB (0%)
Old Run True Default dromaeo-object-array 43.135 ms 0.2668 ms 100320.31 KB
New True Default 43.457 ms (+1%) 0.2021 ms 100320.31 KB (0%)
Old Run True Default droma(...)egexp [21] 124.964 ms 2.3707 ms 166942.69 KB
New True Default 113.679 ms (-9%) 1.6015 ms 150766.22 KB (-10%)
Old Run True Default droma(...)tring [21] 264.836 ms 6.7550 ms 1321333.91 KB
New True Default 261.772 ms (-1%) 7.7983 ms 1315878.52 KB (0%)
Old Run True Default droma(...)ase64 [21] 51.299 ms 0.2805 ms 5948.17 KB
New True Default 44.397 ms (-13%) 0.1250 ms 2268.81 KB (-62%)

Jint.Benchmark.EvaluationBenchmark

Diff Method Toolchain Mean Error Allocated
Old Execute Default 24.302 μs 0.1566 μs 39.39 KB
New Default 24.641 μs (+1%) 0.3020 μs 39.19 KB (-1%)
Old Execute_ParsedScript Default 8.156 μs 0.1338 μs 28.01 KB
New Default 7.934 μs (-3%) 0.0517 μs 27.8 KB (-1%)

Jint.Benchmark.MinimalScriptBenchmark

Diff Method Toolchain Mean Error Allocated
Old Execute Default 4.273 μs 0.0489 μs 14.66 KB
New Default 4.132 μs (-3%) 0.0265 μs 14.46 KB (-1%)
Old Execute_ParsedScript Default 2.057 μs 0.0192 μs 12.59 KB
New Default 1.918 μs (-7%) 0.0084 μs 12.39 KB (-2%)

@lahma lahma merged commit 78bc1ec into sebastienros:3.x Apr 26, 2024
3 checks passed
@lahma lahma deleted the test262-update-3.x branch April 26, 2024 16:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant