Benedikt Meurer

benediktmeurer.de · Personal blog · on HN since 2016

Benedikt Meurer is a V8 engineer who writes about JavaScript engine internals, TurboFan, Ignition and performance benchmarks.

What HN saysHN commenters recommend his post on traditional JavaScript benchmarks, and a former V8 engineer agrees that SunSpider is a poor benchmark that has misdirected performance work.
23HN people shared it
9linked it in comments
21stories submitted
519story points
3 months agolast shared
2016people per year2026

Most-shared posts

  1. 1
    Traditional JavaScript benchmarks
    8 people · 94 points · first shared 2016 · 35 comments on HN
  2. 2
    V8: A Tale of TurboFan
    4 people · 207 points · first shared 2017 · 58 comments on HN
  3. 3
    The case of temporary objects in Chrome
    2 people · 7 points · first shared 2016 · discussion on HN
  4. 4
    Ignition and TurboFan Launch and Declarative JS
    2 people · 5 points · first shared 2017 · discussion on HN
  5. 5
    V8: Behind the Scenes (November Edition)
    2 people · 2 points · first shared 2016 · discussion on HN
  6. 6
    Optimizing bound functions further in V8
    2 people · 2 points · first shared 2016 · discussion on HN
  7. 7
    A new approach to Function.prototype.bind
    2 people · 1 points · first shared 2016 · discussion on HN
  8. 8
    V8: Behind the Scenes (December Edition)
    1 people · 101 points · first shared 2016 · 9 comments on HN
  9. 9
    Restoring for..in peak performance
    1 people · 89 points · first shared 2017 · 5 comments on HN
  10. 10
  11. 11
    Following up on JavaScript benchmarks
    1 people · 2 points · first shared 2016 · discussion on HN
  12. 12
    Object constructor calls in webpack bundles
    1 people · 2 points · first shared 2017 · discussion on HN
  13. 13
  14. 14
    JavaScript Optimization Patterns (Part 1)
    1 people · 2 points · first shared 2017 · discussion on HN

What HN people wrote when they linked it

codinghorror · 2018-10-08
I highly recommend this article in that same vein http://benediktmeurer.de/2016/12/16/the-truth-about-traditional-javasc… This is when Chrome on Android finally started to turn a corner, they've done a fantastic job. JS perf has increased 50% from 2016 to 2018 in Chrome/Android. Sadly Android is still hamstrung by extremely mediocre Qualcomm SoCs but they've made huge strides on the software side.
rhdunn · 2026-08-13
It can sometimes be difficult to predict what will cause performance regressions when developing an application or web server with test data. So you do your best with what you know at the time of release, and then deal with performance issues when you know what is causing regressions (e.g. saved searches) and can then make measurements and profiling to see what exactly is causing the issue. Likewise, improving performance pushes the limit at which performance regressions happen allowing more data (documents, triangles/pixels, etc.) to be processed. This allows things like more complex game graphics. That in turn makes it harder to improve performance for the next round (more advanced triangle/face culling and pre-processing). There can also be trade-offs with things like data layout, memory usage (caching and memoization), or implementation. For example, when processing XML/HTML data you could use DOM (more memory and upfront parsing, but easier to perform complex queries across the data), SAX (less memory, but more complex to process due to tracking state), or reader API (similar to SAX but a different processing model). There can be challenges with various features, such as type checking with higher-order generic types. Others add various levels of overhead, such as parsing a program, constructing an AST (Abstract Syntax Tree), generating an IR (Intermediate Representation), the optimization passes and final code generation. JavaScript evaluation for example is…
titzer · 2023-08-15
Speaking from the perspective of a (former) V8 engineer, SunSpider is crappy benchmark, and I can't believe people still track it. It has misdirected JavaScript performance engineering work for going on 15 years now, leading to all kinds of weird contortions in JavaScript engines that do not benefit real world sites. Years ago, V8 switched away from microbenchmarks for the most part. See: https://benediktmeurer.de/2016/12/16/the-truth-about-traditional-javas…
bobajeff · 2017-05-31
Actually, the AOT optimization path for asm.js has been supported by Internet Explorer/Edge for quite some time. Chrome also supports AOT asm.js path now through their wasm implementation[1]. Before that Chrome and Safari did optimizations that just happened to make asm.js faster ;) It's likely that if WebAssembly didn't happen everyone would've implemented AOT optimizations for asm.js and all the new features (shared memory threads, simd, 64bit int etc.) would be targeting that instead. [1] http://benediktmeurer.de/2016/12/20/v8-behind-the-scenes-december-edit…
STRML · 2017-05-31
Well, the optimizing pipeline has completely changed in V8 5.8 (if you use `--turbo --ignition`) and in 5.9+. It's been simplified and most importantly, does not deoptimize on quite so many common features (such as try/catch). More information at http://benediktmeurer.de/2017/03/01/v8-behind-the-scenes-february-edit… and some of his other articles. In my testing it appears that TurboFan cannot optimize certain patterns as well as Crankshaft did, but there's no reason to believe those regressions will remain as TF evolves. Optimizing more code is much more important for real apps.
okket · 2017-03-30
FYI: Idiomatic Javascript / Builtins should be fast with the recent revamp of the V8 engine (stop writing "CrankScript"). http://benediktmeurer.de/2017/03/01/v8-behind-the-scenes-february-edit… https://github.com/v8/v8/wiki/TurboFan https://www.youtube.com/watch?v=M1FBosB5tjM
inian · 2016-12-24
Take a look at this talk on why mobile devices are so much slower than desktop devices ( they are indeed 10x slower in the traces I have looked at too) - https://youtu.be/4bZvq3nodf4 Also look at the speedometer benchmark (http://browserbench.org/Speedometer/) for a more realistic comparison of how slow your mobile device is compared to your desktop when running real world apps. Here are some numbers from the benchmark from some devices - http://benediktmeurer.de/2016/12/16/the-truth-about-traditional-javasc…
krisdol · 2016-01-22
Woohoo! I've been hoping that this guy's Function.bind optimizations land before 6.0: http://benediktmeurer.de/2015/12/25/a-new-approach-to-function-prototy… But you prompted me to check on the status of his work, and was happy to find a new post: http://benediktmeurer.de/2016/01/14/optimizing-bound-functions-further… It looks like V8 will finally be able to inline bound functions (https://codereview.chromium.org/1581343002)! That's huge!

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close