Publications-Theses
Article View/Open
Publication Export
Google ScholarTM
NCCU Library
Citation Infomation
Related Publications in TAIR
Title | 利用剖面織入技術偵測Java程式中的記憶體漏失 Aspect-Based Instrumentation for Locating |
Creator | 陳鉅秉 Chen,Ju-Bing |
Contributor | 陳恭 Chen,Kung 陳鉅秉 Chen,Ju-Bing |
Key Words | 記憶體漏失 垃圾回收器 程式織入 剖面導向程式設計 memory leak garbage collection code instrumentation aspect-oriented programming AspectJ |
Date | 2006 |
Date Issued | 17-Sep-2009 14:02:02 (UTC+8) |
Summary | Despite the built-in garbage collector, Java programs can still suffer the memory leak problem resulted from the unhealthy programming style of retaining unwanted references. This paper presents an aspect-based tool for assisting programmers in locating such references to fix the problem. This tool, FindLeaks, utilizes an aspect to collect memory consumption statistics and object references created during a program’s execution and analyzes them for detecting memory leaks. The distinctive feature of FindLeaks is that it reports not only suspected classes of leaked objects but also where in the source the unwanted references were created. Besides, this paper also reports our experience with FindLeaks on three open source Java programs and how we enhanced it to lower its overhead. |
參考文獻 | [1] AgroUML, http://argouml.tigris.org/ [2] AgroUML bug 2352, http://argouml.tigris.org/issues/show_bug.cgi?id=2352 [3] Azureus, http://azureus.sourceforge.net/ [4] D. J. Pearce, M. Webster, R. Berry, P. H. Kelly, “Profiling with AspectJ,” Software: Practice and Experience 2006 [5] G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W.G. Griswold, “Getting Started with AspectJ”, Communications of ACM, vol. 44, no. 10, pp 59-65, Oct. 2001. AspectJ website: http://www.eclipse.org/aspectj/ [6] Jikes RVM, http://jikesrvm.org/ [7] K. Chen and C. H. Chien, “Extending the Field Access Pointcuts of AspectJ to Arrays”, Proc. International Computer Symposium, Taipei, Taiwan, Dec. 2006. [8] L. Slipp, “Loitering Objects and Java Framework Design,” JavaReport, Vol. 6, No. 1, 2001. [9] M. Bond and K. S. McKinley, “Bell: Bit-Encoding Online Memory Leak Detection,” in Proceedings of The Twelfth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2006, pp. 61–72. [10] M. Jump and K. S. McKinl, “Cork: dynamic memory leak detection for garbage-collected languages “, in Proceedings of the POPL Conference, 2007, pp. 31-38. [11] N. Mitchell and G. Sevitsky, “LeakBot: An Automated and Lightweight Tool for Diagnosing Memory Leaks in Large Java Application ,” in Proceedings of European Conference on Object-Oriented Programming (ECOOP), 2003, LNCS 2743, pp. 351-377. [12] NIST/SEMATECH e-Handbook of Statistical Methods, http://www.itl.nist.gov/div898/handbook/ [13] O. Agesen and A. Garthwaite, “Efficient Object Sampling Via Weak References”, ACM SIGPLAN Notices, 2001. [14] P. Avgustinov, A. S. Christensen, L. Hendren, S. Kuzins, J. Lhot’ak, O. Lhot’ak, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. “abc: An extensible AspectJ compiler”, Procs. of the 4th International conference on Aspect-Oriented Software Development (AOSD 2005), Chicago, USA, pp. 87-98, 2005. [15] ReferenceIdentityMap, http://sourceforge.net/projects/collections/ [16] RSSOwl: a Java RSS/RDF/Atom Newsreader, http://www.rssowl.org/ [17] W. D. Pauw and G. Sevitsky, “Visualizing Reference Patterns for Solving Memory Leaks in Java,” Concurrency: Practice and Experience, Volume 12, Issue 14, 2000, pp. 1431–1454. [18] WeakReferences, http://java.sun.com/javase/6/docs/api/java/lang/ref/WeakReference.html |
Description | 碩士 國立政治大學 資訊科學學系 94753005 95 |
資料來源 | http://thesis.lib.nccu.edu.tw/record/#G0094753005 |
Type | thesis |
dc.contributor.advisor | 陳恭 | zh_TW |
dc.contributor.advisor | Chen,Kung | en_US |
dc.contributor.author (Authors) | 陳鉅秉 | zh_TW |
dc.contributor.author (Authors) | Chen,Ju-Bing | en_US |
dc.creator (作者) | 陳鉅秉 | zh_TW |
dc.creator (作者) | Chen,Ju-Bing | en_US |
dc.date (日期) | 2006 | en_US |
dc.date.accessioned | 17-Sep-2009 14:02:02 (UTC+8) | - |
dc.date.available | 17-Sep-2009 14:02:02 (UTC+8) | - |
dc.date.issued (上傳時間) | 17-Sep-2009 14:02:02 (UTC+8) | - |
dc.identifier (Other Identifiers) | G0094753005 | en_US |
dc.identifier.uri (URI) | https://nccur.lib.nccu.edu.tw/handle/140.119/32675 | - |
dc.description (描述) | 碩士 | zh_TW |
dc.description (描述) | 國立政治大學 | zh_TW |
dc.description (描述) | 資訊科學學系 | zh_TW |
dc.description (描述) | 94753005 | zh_TW |
dc.description (描述) | 95 | zh_TW |
dc.description.abstract (摘要) | Despite the built-in garbage collector, Java programs can still suffer the memory leak problem resulted from the unhealthy programming style of retaining unwanted references. This paper presents an aspect-based tool for assisting programmers in locating such references to fix the problem. This tool, FindLeaks, utilizes an aspect to collect memory consumption statistics and object references created during a program’s execution and analyzes them for detecting memory leaks. The distinctive feature of FindLeaks is that it reports not only suspected classes of leaked objects but also where in the source the unwanted references were created. Besides, this paper also reports our experience with FindLeaks on three open source Java programs and how we enhanced it to lower its overhead. | en_US |
dc.description.tableofcontents | 1. Introduction 5 2. Related Work 9 3. Technical Background: AOP and AspectJ 11 4. Design and Implementation of FindLeaks 14 4.1.Motivation and Overview 14 4.2.Profiling Aspect 16 4.2.1. Pointcut Design 16 4.2.2. Advice and Information Organization 20 4.2.3. Analysis Module: Identifying Leaks and Locating Unwanted References 23 5. Evaluation 29 5.1.Locating Memory Leaks 29 5.1.1. The first case: AgroUML 30 5.1.2. The second case: Azureus 31 5.1.3. The third case: RSSOwl 31 5.2.Overhead Results and Improvements 34 6. Conclusion and Future Work 38 7. References 40 | zh_TW |
dc.format.extent | 163154 bytes | - |
dc.format.extent | 65510 bytes | - |
dc.format.extent | 16302 bytes | - |
dc.format.extent | 76741 bytes | - |
dc.format.extent | 63478 bytes | - |
dc.format.extent | 148444 bytes | - |
dc.format.extent | 70021 bytes | - |
dc.format.extent | 121223 bytes | - |
dc.format.extent | 335389 bytes | - |
dc.format.extent | 237633 bytes | - |
dc.format.extent | 103599 bytes | - |
dc.format.extent | 72250 bytes | - |
dc.format.mimetype | application/pdf | - |
dc.format.mimetype | application/pdf | - |
dc.format.mimetype | application/pdf | - |
dc.format.mimetype | application/pdf | - |
dc.format.mimetype | application/pdf | - |
dc.format.mimetype | application/pdf | - |
dc.format.mimetype | application/pdf | - |
dc.format.mimetype | application/pdf | - |
dc.format.mimetype | application/pdf | - |
dc.format.mimetype | application/pdf | - |
dc.format.mimetype | application/pdf | - |
dc.format.mimetype | application/pdf | - |
dc.language.iso | en_US | - |
dc.source.uri (資料來源) | http://thesis.lib.nccu.edu.tw/record/#G0094753005 | en_US |
dc.subject (關鍵詞) | 記憶體漏失 | zh_TW |
dc.subject (關鍵詞) | 垃圾回收器 | zh_TW |
dc.subject (關鍵詞) | 程式織入 | zh_TW |
dc.subject (關鍵詞) | 剖面導向程式設計 | zh_TW |
dc.subject (關鍵詞) | memory leak | en_US |
dc.subject (關鍵詞) | garbage collection | en_US |
dc.subject (關鍵詞) | code instrumentation | en_US |
dc.subject (關鍵詞) | aspect-oriented programming | en_US |
dc.subject (關鍵詞) | AspectJ | en_US |
dc.title (題名) | 利用剖面織入技術偵測Java程式中的記憶體漏失 | zh_TW |
dc.title (題名) | Aspect-Based Instrumentation for Locating | en_US |
dc.type (資料類型) | thesis | en |
dc.relation.reference (參考文獻) | [1] AgroUML, http://argouml.tigris.org/ | zh_TW |
dc.relation.reference (參考文獻) | [2] AgroUML bug 2352, http://argouml.tigris.org/issues/show_bug.cgi?id=2352 | zh_TW |
dc.relation.reference (參考文獻) | [3] Azureus, http://azureus.sourceforge.net/ | zh_TW |
dc.relation.reference (參考文獻) | [4] D. J. Pearce, M. Webster, R. Berry, P. H. Kelly, “Profiling with AspectJ,” Software: Practice and Experience 2006 | zh_TW |
dc.relation.reference (參考文獻) | [5] G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W.G. Griswold, “Getting Started with AspectJ”, Communications of ACM, vol. 44, no. 10, pp 59-65, Oct. 2001. AspectJ website: http://www.eclipse.org/aspectj/ | zh_TW |
dc.relation.reference (參考文獻) | [6] Jikes RVM, http://jikesrvm.org/ | zh_TW |
dc.relation.reference (參考文獻) | [7] K. Chen and C. H. Chien, “Extending the Field Access Pointcuts of AspectJ to Arrays”, Proc. International Computer Symposium, Taipei, Taiwan, Dec. 2006. | zh_TW |
dc.relation.reference (參考文獻) | [8] L. Slipp, “Loitering Objects and Java Framework Design,” JavaReport, Vol. 6, No. 1, 2001. | zh_TW |
dc.relation.reference (參考文獻) | [9] M. Bond and K. S. McKinley, “Bell: Bit-Encoding Online Memory Leak Detection,” in Proceedings of The Twelfth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2006, pp. 61–72. | zh_TW |
dc.relation.reference (參考文獻) | [10] M. Jump and K. S. McKinl, “Cork: dynamic memory leak detection for garbage-collected languages “, in Proceedings of the POPL Conference, 2007, pp. 31-38. | zh_TW |
dc.relation.reference (參考文獻) | [11] N. Mitchell and G. Sevitsky, “LeakBot: An Automated and Lightweight Tool for Diagnosing Memory Leaks in Large Java Application ,” in Proceedings of European Conference on Object-Oriented Programming (ECOOP), 2003, LNCS 2743, pp. 351-377. | zh_TW |
dc.relation.reference (參考文獻) | [12] NIST/SEMATECH e-Handbook of Statistical Methods, http://www.itl.nist.gov/div898/handbook/ | zh_TW |
dc.relation.reference (參考文獻) | [13] O. Agesen and A. Garthwaite, “Efficient Object Sampling Via Weak References”, ACM SIGPLAN Notices, 2001. | zh_TW |
dc.relation.reference (參考文獻) | [14] P. Avgustinov, A. S. Christensen, L. Hendren, S. Kuzins, J. Lhot’ak, O. Lhot’ak, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. “abc: An extensible AspectJ compiler”, Procs. of the 4th International conference on Aspect-Oriented Software Development (AOSD 2005), Chicago, USA, pp. 87-98, 2005. | zh_TW |
dc.relation.reference (參考文獻) | [15] ReferenceIdentityMap, http://sourceforge.net/projects/collections/ | zh_TW |
dc.relation.reference (參考文獻) | [16] RSSOwl: a Java RSS/RDF/Atom Newsreader, http://www.rssowl.org/ | zh_TW |
dc.relation.reference (參考文獻) | [17] W. D. Pauw and G. Sevitsky, “Visualizing Reference Patterns for Solving Memory Leaks in Java,” Concurrency: Practice and Experience, Volume 12, Issue 14, 2000, pp. 1431–1454. | zh_TW |
dc.relation.reference (參考文獻) | [18] WeakReferences, http://java.sun.com/javase/6/docs/api/java/lang/ref/WeakReference.html | zh_TW |