JSWhiz: Static analysis for JavaScript memory leaks

作者: J. A. Pienaar , R. Hundt

DOI: 10.1109/CGO.2013.6495007

关键词:

摘要: JavaScript is the dominant language for implementing dynamic web pages in browsers. Even though it standardized, many browsers implement and browser bindings different incompatible ways. As a result, plethora of development frameworks were developed to hide cross-browser issues ease large applications. An unwelcome side-effect these that they can introduce memory leaks, despite fact garbage collected. Memory bloat major issue applications, as affects user perceived latency may even prevent applications from running on devices with limited resources. In this paper we present JSWhiz, an extension open-source Closure compiler. Based experiences analyzing leaks Gmail, JSWhiz detects five identified common problem patterns. found total 89 across Google's Docs, Spread-sheets, Books, itself. It contributed significantly recent effort reduce Gmail footprint, which resulted reduction 75% at 99th percentile, by roughly 50% median.

参考文章(17)
M. Wood, M. Roper, A. Brooks, J. Miller, J. Daly, An empirical study evaluating depth of inheritance on the maintainability of object-oriented software Intellect. pp. 39- 58 ,(1996)
Nick Mitchell, Gary Sevitsky, LeakBot: An Automated and Lightweight Tool for Diagnosing Memory Leaks in Large Java Applications european conference on object-oriented programming. pp. 351- 377 ,(2003) , 10.1007/978-3-540-45070-2_16
John Daly, Andrew Brooks, James Miller, Marc Roper, Murray Wood, Evaluating inheritance depth on the maintainability of object-oriented software Empirical Software Engineering. ,vol. 1, pp. 109- 132 ,(1996) , 10.1007/BF00368701
Nathaniel Ayewah, William Pugh, David Hovemeyer, J. David Morgenthaler, John Penix, Using Static Analysis to Find Bugs IEEE Software. ,vol. 25, pp. 22- 29 ,(2008) , 10.1109/MS.2008.130
Sigmund Cherem, Lonnie Princehouse, Radu Rugina, Practical memory leak detection using guarded value-flow analysis Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation - PLDI '07. ,vol. 42, pp. 480- 491 ,(2007) , 10.1145/1250734.1250789
Yulei Sui, Ding Ye, Jingling Xue, Static memory leak detection using full-sparse value-flow analysis Proceedings of the 2012 International Symposium on Software Testing and Analysis - ISSTA 2012. pp. 254- 264 ,(2012) , 10.1145/2338965.2336784
Maria Jump, Kathryn S. McKinley, Cork: dynamic memory leak detection for garbage-collected languages symposium on principles of programming languages. ,vol. 42, pp. 31- 38 ,(2007) , 10.1145/1190215.1190224
Yungbum Jung, Kwangkeun Yi, Practical memory leak detector based on parameterized procedural summaries Proceedings of the 7th international symposium on Memory management - ISMM '08. pp. 131- 140 ,(2008) , 10.1145/1375634.1375653
Matthias Hauswirth, Trishul M. Chilimbi, Low-overhead memory leak detection using adaptive statistical profiling Proceedings of the 11th international conference on Architectural support for programming languages and operating systems - ASPLOS-XI. ,vol. 39, pp. 156- 164 ,(2004) , 10.1145/1024393.1024412
Michael D. Bond, Kathryn S. McKinley, Bell Proceedings of the 12th international conference on Architectural support for programming languages and operating systems - ASPLOS-XII. ,vol. 41, pp. 61- 72 ,(2006) , 10.1145/1168857.1168866