Scalable Comparison of JavaScript V8 Bytecode Traces

Javier Cabrera-Arteaga,Martin Monperrus,Benoit Baudry
DOI: https://doi.org/10.1145/3358504.3361228
2019-10-08
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 <a class="link-external link-https" href="https://2019.splashcon.org" rel="external noopener nofollow">this https URL</a>, which generates approx. 150k of V8 bytecode instructions.
Networking and Internet Architecture
What problem does this paper attempt to address?