{'fraction_non_alphanumeric': 0.021408839779005526, 'fraction_numerical': 0.0006906077348066298, 'mean_word_length': 5.73953488372093, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Architectural Characterization of Client-side JavaScript Workloads & Analysis of Software Optimizations

The use of JavaScript for web applications has increased in recent years due to its short learning curve, maintainability, and ease of portability across different mobile operating systems. However, the performance of dynamic-typed languages such as JavaScript significantly lag behind their corresponding C/C++ native code. Recent advances in JavaScript compilers have resulted in notable improvements for client-side Web applications. However, the impact on the architectural execution of these software optimizations is not well understood. Furthermore, because many of the client-side benchmarks are not representative of real world websites and applications, thus the would-be impact of many software optimizations may be overestimated. In this paper, we present an in-depth architectural characterization of a newer JavaScript benchmark suite, as well as a profile analysis of the popular JavaScript v8 runtime engine from Google. Our analysis illustrates the architectural impact of specific runtime optimizations, as well as additional insights of the interaction between the runtime engine and different JavaScript applications. We perform our evaluations using stock versions of new JetStream client-side JavaScript workloads, as well as on modified versions that closes the program-level representation gap with real-world websites.