Home / Companies / Polar Signals / Blog / Post Details
Content Deep Dive

Profiling Internals: JavaScript on V8

Blog post from Polar Signals

Post Details
Company
Date Published
Author
-
Word Count
2,312
Company Posts That Month
4
Language
English
Hacker News Points
-
Summary

The text delves into the complexities of profiling JavaScript code executed by the V8 engine, highlighting the challenges faced when unwinding stacks and associating them with human-readable function names and line numbers. It explains the process V8 uses to parse JavaScript into bytecode for the Ignition interpreter and the subsequent compilation to machine code by one of three compilers: Sparkplug, Maglev, or TurboFan. Unlike native code, V8-generated code doesn't rely on .eh_frame data for stack unwinding due to its dynamic nature, instead utilizing frame pointers present in Node.js stacks. The article further discusses methods to detect V8 frames, distinguish them from native ones, and symbolize them by recovering function names and source line numbers. It highlights the use of debug symbols and manual version matching to discover necessary offsets, emphasizing the intricate work involved in maintaining a production-grade profiler for V8, supported by collaborations with the OTel Profiling community and the use of AI tools for accuracy checks.

Trends Found in this Post
Trend Post Mentions Total Month Mentions Posts Companies MoM
OpenTelemetry 2 701 153 53 -26%