Scalable Comparison of JavaScript V8 Bytecode Traces
Javier Cabrera-Arteaga, Martin Monperrus, Benoit Baudry

TL;DR
STRAC is a scalable tool for comparing large, non-deterministic V8 JavaScript bytecode traces, enabling semantic analysis and debugging of web pages by efficiently aligning traces despite their size and variability.
Contribution
We introduce STRAC, a novel scalable and extensible method for aligning large V8 bytecode traces, addressing non-determinism and size challenges in web trace comparison.
Findings
STRAC can process approximately 150,000 bytecode instructions.
It effectively identifies semantically equivalent web pages.
The tool improves trace comparison efficiency for large web traces.
Abstract
The comparison and alignment of runtime traces are essential, e.g., for semantic analysis or debugging. However, naive sequence alignment algorithms cannot address the needs of the modern web: (i) the bytecode generation process of V8 is not deterministic; (ii) bytecode traces are large. We present STRAC, a scalable and extensible tool tailored to compare bytecode traces generated by the V8 JavaScript engine. Given two V8 bytecode traces and a distance function between trace events, STRAC computes and provides the best alignment. The key insight is to split access between memory and disk. STRAC can identify semantically equivalent web pages and is capable of processing huge V8 bytecode traces whose order of magnitude matches today's web like https://2019.splashcon.org, which generates approx. 150k of V8 bytecode instructions.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
