學術產出-Theses

Article View/Open

Publication Export

Google ScholarTM

政大圖書館

Citation Infomation

  • No doi shows Citation Infomation
題名 利用剖面織入技術偵測Java程式中的記憶體漏失
Aspect-Based Instrumentation for Locating
作者 陳鉅秉
Chen,Ju-Bing
貢獻者 陳恭
Chen,Kung
陳鉅秉
Chen,Ju-Bing
關鍵詞 記憶體漏失
垃圾回收器
程式織入
剖面導向程式設計
memory leak
garbage collection
code instrumentation
aspect-oriented programming
AspectJ
日期 2006
上傳時間 17-Sep-2009 14:02:02 (UTC+8)
摘要 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
描述 碩士
國立政治大學
資訊科學學系
94753005
95
資料來源 http://thesis.lib.nccu.edu.tw/record/#G0094753005
資料類型 thesis
dc.contributor.advisor 陳恭zh_TW
dc.contributor.advisor Chen,Kungen_US
dc.contributor.author (Authors) 陳鉅秉zh_TW
dc.contributor.author (Authors) Chen,Ju-Bingen_US
dc.creator (作者) 陳鉅秉zh_TW
dc.creator (作者) Chen,Ju-Bingen_US
dc.date (日期) 2006en_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) G0094753005en_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 (描述) 94753005zh_TW
dc.description (描述) 95zh_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/#G0094753005en_US
dc.subject (關鍵詞) 記憶體漏失zh_TW
dc.subject (關鍵詞) 垃圾回收器zh_TW
dc.subject (關鍵詞) 程式織入zh_TW
dc.subject (關鍵詞) 剖面導向程式設計zh_TW
dc.subject (關鍵詞) memory leaken_US
dc.subject (關鍵詞) garbage collectionen_US
dc.subject (關鍵詞) code instrumentationen_US
dc.subject (關鍵詞) aspect-oriented programmingen_US
dc.subject (關鍵詞) AspectJen_US
dc.title (題名) 利用剖面織入技術偵測Java程式中的記憶體漏失zh_TW
dc.title (題名) Aspect-Based Instrumentation for Locatingen_US
dc.type (資料類型) thesisen
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=2352zh_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 2006zh_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.htmlzh_TW