You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
But the fact is that they have become fast and will often win between competitors. That's a good news for me, I ❤️ mixins, you know.
Next weekend we will definitely make meetup for benchmarking and V8 performance, initial meetup to discuss method, tools and prepare tasks.
Another strange case that newPrototype is faster then newClass but I think we need to run each test in separate process one after another and with disabled gc
@tshemsedinov not necessarily they, that might as well be new optimizations that just eat your benchmarked functions and leave only little crumbs :)
If https://github.com/HowProgrammingWorks/Benchmark/blob/master/JavaScript/3-instantiation.js is the benchmark you are talking about, I'd definitely check out the compiled code before making any conclusions. From what I see, after inlining benchmarked functions, there will be lots of loop invariants that V8 usually pulls out of the loop, so many of these tests most probably benchmark nothing.
I'd also recommend you to check out this video or other talks by Vyacheslav Egorov, one of the V8 developers. Spoiler: due to how V8 works, the best way to write microbenchmarks is to never write microbenchmarks, but if you absolutely must do so, there are certain techniques that should be used and certain situation you have to be aware of.
Activity
aqrln commentedon Mar 11, 2017
Not sure we should waste time on testing
5.x.7.xis current,4.xand6.xare LTS, but5.xis deprecated and unmaintained.tshemsedinov commentedon Mar 12, 2017
6.xand7.xis enough. Do we need current master? @aqrlnaqrln commentedon Mar 12, 2017
Would be nice to have. It has more up-to-date V8 version.
tshemsedinov commentedon Mar 25, 2017
@aqrln it's strange but create empty
{}and mixin to it is faster then define{ a, b, c }tshemsedinov commentedon Mar 25, 2017
Oh, it seems that gc influences test significantly, adding
--nouse-idle-notificationchanges test:aqrln commentedon Mar 25, 2017
@tshemsedinov I'd also check the IR to see how V8 compiles it. Microbenchmarks are very tricky to get done right.
tshemsedinov commentedon Mar 25, 2017
But the fact is that they have become fast and will often win between competitors. That's a good news for me, I ❤️ mixins, you know.
Next weekend we will definitely make meetup for benchmarking and V8 performance, initial meetup to discuss method, tools and prepare tasks.
tshemsedinov commentedon Mar 25, 2017
Another strange case that
newPrototypeis faster thennewClassbut I think we need to run each test in separate process one after another and with disabled gcaqrln commentedon Mar 25, 2017
@tshemsedinov not necessarily they, that might as well be new optimizations that just eat your benchmarked functions and leave only little crumbs :)
If https://github.com/HowProgrammingWorks/Benchmark/blob/master/JavaScript/3-instantiation.js is the benchmark you are talking about, I'd definitely check out the compiled code before making any conclusions. From what I see, after inlining benchmarked functions, there will be lots of loop invariants that V8 usually pulls out of the loop, so many of these tests most probably benchmark nothing.
aqrln commentedon Mar 25, 2017
I'd also recommend you to check out this video or other talks by Vyacheslav Egorov, one of the V8 developers. Spoiler: due to how V8 works, the best way to write microbenchmarks is to never write microbenchmarks, but if you absolutely must do so, there are certain techniques that should be used and certain situation you have to be aware of.