| 研究生: |
楊佳翰 Yang, Jia-Han |
|---|---|
| 論文名稱: |
參考計數式環狀垃圾收集系統之效能評估平台 A Performance Evaluation Platform for Cyclic Reference Counting |
| 指導教授: |
侯廷偉
Hou, Ting-Wei |
| 學位類別: |
碩士 Master |
| 系所名稱: |
工學院 - 工程科學系 Department of Engineering Science |
| 論文出版年: | 2006 |
| 畢業學年度: | 94 |
| 語文別: | 中文 |
| 論文頁數: | 58 |
| 中文關鍵詞: | 環狀垃圾回收 、垃圾收集演算法 、垃圾收集器 |
| 外文關鍵詞: | Garbage Collection, Cyclic Reference Counting, Reference Counting |
| 相關次數: | 點閱:56 下載:2 |
| 分享至: |
| 查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報 |
隨著主流高階語言(如:JAVA、C#)對於垃圾收集執行環境的依賴性加重,垃圾收集演算法又逐漸受到重視。然而,垃圾收集演算法的效能評估通常需涉及特定的執行環境(如:虛擬機器),這使得研究垃圾收集演算法的人必須花費相對較多的時間來熟悉該特定系統,而無法只專注於演算法本身,這也導致了演算法的評估往往只限定在熟悉特定系統的人。
有鑑於此,本研究嘗試設計一獨立於特定系統(如:虛擬機器)之效能評估工具,初步以參考計數之環狀垃圾偵測演算法來進行設計。目的在降低評估垃圾收集演算法時的額外負擔,讓非系統人員也可以用相對較少的時間來進行評估的工作。平台的演算法評估與模擬包含兩個階段:演算法實作以及模擬執行與分析;前者以平台提供之介面並以C++語言來實作演算法,而後者以IBM的RVM(Research Virtual Machine)執行SPECjvm98取得之記憶體堆積物件影像做為演算法模擬輸入,並運行評估與模擬的動作。
利用本研究工具來實作新演算法可大量節省開發上的時間、驗證演算法的正確性,並且用以與傳統演算法之效能做比較,亦可讓演算法開發者用來評估其演算法是否有實作於真實系統之價值性。
With the increasing incorporation of garbage collection runtimes into high-level programming languages, such as Java and C#, many researchers have been reconsidering garbage collection (GC) algorithms. However, the evaluation of GC algorithms often involves implementing the algorithm on a specific environment, for example, a virtual machine. This is especially difficult for researchers who are not familiar with the environment because it would take a considerable time to learn.
A performance evaluation platform is designed and implemented for GC algorithms. The main idea is to offer an evaluation environment, which is system-independent, modular and easy to use, so that the burden of GC researchers can be relieved significantly.
This platform is preliminarily designed only for Cyclic Reference Counting (CRC), a well-known issue for Reference Counting. Key to this design is that it takes a “real” computation graph for CRC algorithms. All the input (graphs) are obtained by taking snapshots of memory when running a known CRC algorithm on the Jikes Research Virtual Machine (RVM), in which the SPECjvm98 benchmarks are used. The evaluation is thus close to the real situation. By this platform, one can save much time when developing or evaluating a CRC algorithm. In addition, it also helps developers to determine whether to implement the algorithm in a real system or not, such as a virtual machine.
[1]Bowen Alpern, C. R. Attanasio, Anthony Cocchi, Derek Lieber, Stephen Smith, Ton Ngo, John J. Barton, Susan Flynn Hummel, Janice C. Sheperd, Mark Mergen, “Implementing jalapeño in Java,” Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pp.314-324, 1999.
[2]David F. Bacon, and V. T. Rajan, “Concurrent Cycle Collection in Reference Counted Systems,” Proceedings of the 15th European Conference on Object-Oriented Programming, pp.207-235, June 2001.
[3]Stephen M. Blackburn, Perry Cheng and Kathryn S. McKinley, “Oil and Water? High Performance Garbage Collection in Java with MMTk,” Proceedings of the 26th International Conference on Software Engineering, pp.137-146, May 2004.
[4]George E. Collins., “A method for overlapping and erasure of lists,” Communications of the. ACM, vol.3, issue12, pp.655-657, 1960.
[5]IBM, Jinsight, http://www.research.ibm.com/jinsight/.
[6]Chin-Yang Lin and Ting-Wei Hou, “A Lightweight Cyclic Reference Counting Algorithm,” Lecture Notes in Computer Science, vol.3947, pp.346-359, 2006.
[7]R.D. Lins, “Cyclic Reference counting with lazy mark-scan,” Information Processing Letters, vol.44, issue 4, pp.215-220, December 1992.
[8]R.D. Lins, “Generational cyclic reference counting,” Information Processing Letters, vol.46, issue 1, pp.19-20, February 1993.
[9]R.D. Lins, “An efficient algorithm for cyclic reference counting,” Information Processing Letters, vol.83, issue 3, pp.145-150, August 2002.
[10]A.D. Martinez, R. Wachenchauzer, and R.D. Lins, “Cyclic reference counting with local mark-scan,” Information Processing Letters, vol.34, issue 1, pp.31-35, February 1990.
[11]John McCarthy, “Recursive functions of symbolic expressions and their computation by machine,” Communications of the. ACM, vol.3, pp.184-195, 1960.
[12]Tony Printezis and Alex Garthwaite, “Visualising the Train Garbage Collector,” Proceedings of the 3rd international symposium on Memory management, pp.50-63, July 2002.
[13]Tony Printezis and Richard Jones, “GCspy: An Adaptable Heap Visualisation Framework,” Proceedings of the 17th Annual ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2002), pp.343-356, November 2002.
[14]QUEST SOFTWARE, JProbe, http://www.quest.com/jprobe/.
[15]SPEC, SPECjvm98, http://www.spec.org/.
[16]Richard Jones and Rafael Lins, “Garbage Collection, Algorithms for Automatic Dynamic Memory Management”, WILEY, New York, pp.43-72, 1996.
[17]Robert E. Tarjan, “Depth-first search and linear graph algorithms”, SIAM J. of Computing, vol 1, pp.146-160, 1972.
[18]侯曄暘,”高效率環狀偵測器之設計與實作:應用於參考計數系統”,國立成功大學工程科學系碩士論文,2006.