Muzeel: A Dynamic JavaScript Analyzer for Dead Code Elimination in Today's Web

06/15/2021
by   Tofunmi Kupoluyi, et al.
0

JavaScript contributes to the increasing complexity of today's web. To support user interactivity and accelerate the development cycle, web developers heavily rely on large general-purpose third-party JavaScript libraries. This practice increases the size and the processing complexity of a web page by bringing additional functions that are not used by the page but unnecessarily downloaded and processed by the browser. In this paper, an analysis of around 40,000 web pages shows that 70 unused, and the elimination of these functions would contribute to the reduction of the page size by 60 Muzeel (which means eliminator in Arabic); a solution for eliminating JavaScript functions that are not used in a given web page (commonly referred to as dead code). Muzeel extracts all of the page event listeners upon page load, and emulates user interactions using a bot that triggers each of these events, in order to eliminate the dead code of functions that are not called by any of these events. Our evaluation results spanning several Android mobile phones and browsers show that Muzeel speeds up the page load by around 30 low-end phones, and by 25 the speed index (which is an important user experience metric) by 23 under the same network on low-end, and high-end phones, respectively. Additionally, Muzeel reduces the overall download size while maintaining the visual content and interactive functionality of the pages.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset