-
-
Notifications
You must be signed in to change notification settings - Fork 547
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
Performance improvements #451
Comments
Status for the new release 3.0.0-beta-1101. Typos and miscalculations are my own. BenchmarkDotNet=v0.10.11, OS=Windows 10 Redstone 3 [1709, Fall Creators Update] (10.0.16299.192)
Processor=Intel Core i7-6820HQ CPU 2.70GHz (Skylake), ProcessorCount=8
Frequency=2648435 Hz, Resolution=377.5815 ns, Timer=TSC
.NET Core SDK=2.1.4
[Host] : .NET Core 2.0.5 (Framework 4.6.26020.03), 64bit RyuJIT
Job-ILFHZD : .NET Core 2.0.5 (Framework 4.6.26020.03), 64bit RyuJIT Esprima.Benchmark.SunSpiderBenchmark
Jint.Benchmark.ArrayBenchmark
Jint.Benchmark.ArrayStressBenchmark
Jint.Benchmark.EvaluationBenchmark
Jint.Benchmark.LinqJsBenchmark
Jint.Benchmark.MinimalScriptBenchmark
Jint.Benchmark.StringIndexingBenchmark
Jint.Benchmark.UncacheableExpressionsBenchmark
|
I'd love to be able to create a custom project on appveyor that would only run the benchmarks before and after all the commits on a PR. That should not be that hard to do. Ideally generating a custom report, or adding a comment to the PR. |
Yes, that would be nice. You can programmatically make BenchmarkDotNet to run specific cases with wanted output. The current output has way too much noise and it would be nice to have per-benchmark results to that values wouldn't be scaled to share same mins and maxes. |
* remove LINQ from hot paths * use List<T> where possible to get rid of memory allocations * cache empty completions
* use separate fields for commonly accessed prototype and constructor
* this helps with array optimization branch as this can be considered master version
* #451 optimize declarative environment record handling for functions * use explicit type field checks as small methods won't inline to small methods * seal some classes * #451 inline more hot paths * #451 use == instead of Equals for doubles as strings, less IL code * #451 minimize work done in hot paths * #451 use Dictionary directly in ObjectInstance as it caters better performance * #451 tweak property setting via direct field * #451 more tweaks * #451 use ArrayPrototype.ConstructFast when possible * #451 improve bounds check performance for .NET Core 2.1
* inherit directly from JsValue * merge MruPropertyCache2 into DeclarativeEnvironmentRecord * remove MruPropertyCaches as obsolete * add direct field access to properties that don't inline * make Binding struct * use correct overload for GetValue directly * remove some range checks by casting to uint * don't re-assign array values when unnecessary
* inline some getter calls * eliminate some bounds checks
* faster lookups, cache results * use readonly for DiyFp and in to prevent defensive copies
* optimize FindBestMatch * remove obsolete code * prefer foreach for arrays
…tienros#517) * sebastienros#451 optimize declarative environment record handling for functions * use explicit type field checks as small methods won't inline to small methods * seal some classes * sebastienros#451 inline more hot paths * sebastienros#451 use == instead of Equals for doubles as strings, less IL code * sebastienros#451 minimize work done in hot paths * sebastienros#451 use Dictionary directly in ObjectInstance as it caters better performance * sebastienros#451 tweak property setting via direct field * sebastienros#451 more tweaks * sebastienros#451 use ArrayPrototype.ConstructFast when possible * sebastienros#451 improve bounds check performance for .NET Core 2.1
There's a new release on NuGet so time to share latest numbers. This time memory usage was further reduced and some micro optimizations were made. 2.11.58 vs 3.0.0-beta-1249BenchmarkDotNet=v0.10.14, OS=Windows 10.0.17713
Intel Core i7-6820HQ CPU 2.70GHz (Skylake), 1 CPU, 8 logical and 4 physical cores
.NET Core SDK=2.1.302
[Host] : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT
DefaultJob : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT Esprima.Benchmark.DromaeoBenchmark
Esprima.Benchmark.SunSpiderBenchmark
Jint.Benchmark.ArrayBenchmark
Jint.Benchmark.ArrayStressBenchmark
Jint.Benchmark.EvaluationBenchmark
Jint.Benchmark.LinqJsBenchmark
Jint.Benchmark.MinimalScriptBenchmark
Jint.Benchmark.UncacheableExpressionsBenchmark
|
…tDictionary * remove intrinsic properties
This issue is tracking various pull requests and performance issues to keep track of progress.
Baseline created of benchmarks using commit 4a7fed1
ArrayBenchmark
ArrayStressBenchmark
EvaluationBenchmark
LinqJsBenchmark
MinimalScriptBenchmark
SunSpiderBenchmark
UncacheableExpressionsBenchmark
The text was updated successfully, but these errors were encountered: