簡易檢索 / 詳目顯示

研究生: 張翰峰
Chang, Han-Feng
論文名稱: 使用多執行緒處理器以提升Java直譯器效能之研究
A Study on the performance of a Java Interpreter on multi-threaded processors
指導教授: 侯廷偉
Hou, Ting-Wei
學位類別: 碩士
Master
系所名稱: 工學院 - 工程科學系
Department of Engineering Science
論文出版年: 2006
畢業學年度: 94
語文別: 中文
論文頁數: 58
中文關鍵詞: 效能雙核心Java 直譯器多執行緒最佳化技術
外文關鍵詞: multi-threaded, optimization, performance, JVM, dual core
相關次數: 點閱:62下載:1
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 本研究分兩部分檢視JVM於執行單一與多執行緒程式時的效能改善。

    於硬體平台,本研究使用兩種不同多執行緒技術的硬體平台(Pentium 4 with Hyper Threading與Pentium D 雙核心處理器)檢視於相同環境下,兩款處理器可以給予單一與多執行緒程式的效能提升。我們採用SPECjvm98與Java Grande Forum Multi-threaded Benchmark為效能評估程式。經實驗結果發現,相對於傳統處理器,採用雙核心技術的Pentium D 處理器於執行多執行緒程式可以給予77%以上的效能增益。

    於軟體平台,本研究採用兩種不同的直譯器最佳化技術(堆疊快取法 stack caching與預先擷取法 prefetch)添加於JVM上,並檢視其執行Java單一與多執行緒程式程式的效能表現。分別採用Pentium D雙核心處理器系統與Pentium 4處理器系統做為軟體試驗的實驗平台。由於Java直譯器有著簡單實作、容易維護和移植的特點,在本研究中不考慮JIT(Just-in-Time)編譯器的實作與最佳化,改採用以直譯器為主的JamVM為JVM,而直譯器最佳化技術的添加,亦為整體系統帶來將近5%的效能提升。

    In this thesis, we characterize the performance of single-threaded and multi-threaded Java applications both on different hardware platforms and different software platforms. For this purpose, we adopt two benchmarks : SPECjvm98 Benchmark, and Java Grande Forum Multi-threaded Benchmark.

    For hardware platforms, we choose Intel Pentium 4 with Hyper Threading processor and Intel Pentium D dual core processor as our experiment platforms. The experimental results reveal that processors with Multi-threading design indeed improve the performance of multi-threaded Java programs by 77% and more.

    For software platforms, we adopt different interpreter optimizations on JamVM , which is an interpreter-based JVM. We experiment on stack caching and prefetch. The experimental results reveal that stack caching improves most single-threaded and multi-threaded Java programs by 5%.

    第一章 緒論 1 1.1 研究背景與動機 1 1.2 研究目的 3 1.3 研究方法 4 1.4 章節概述 5 第二章 多執行緒技術 5 2.1 傳統處理器處理多執行緒程式的瓶頸 5 2.2 同步多執行緒技術 (Simultaneous MultiThreading) 6 2.3 多核心技術(Multi-Core) 8 2.3.1 雙核心技術(Dual Core) 9 2.4 雙處理器系統 vs 超執行緒技術 vs 雙核心技術 11 第三章 目前使用於直譯器加速的方式 14 3.1 超級指令法 (Super Instruction) 14 3.2 堆疊快取法 (Stack Caching) 15 3.3 直接線串法 (Direct Threading) 16 3.3.1 Context Threading 19 3.4 小結 20 第四章 實驗平台設計與設置 21 4.1 實驗平台 21 4.2 JamVM簡介 21 4.3 效能測試程式 22 4.3.1 SPECjvm98 22 4.3.2 Java Grande Forum Multi-threaded Benchmarks 23 第五章 實驗結果 26 5.1 不同硬體平台執行結果 26 5.1.1 不同硬體平台執行單一執行緒程式的結果 26 5.1.2 不同硬體平台執行多執行緒程式結果 31 5.2 添加不同直譯器最佳化技術的影響 36 5.2.1 添加不同直譯器最佳化技術於Pentium D執行程式效能的影響 36 5.2.2 添加不同直譯器最佳化技術於Pentium 4執行程式效能的影響 44 5.3 所遭遇的困難 52 第六章 結論與未來工作 53 6.1 結論 53 6.2 未來工作 54 參考文獻 56 自述 58

    [1] Intel Inc, Multi-core. http://www.intel.com/multi-core/index.htm

    [2] Standard Performance Evaluation Corporation (SPEC) , SPECjvm98 Benchmark version 1.00, July 30, 1998

    [3] Java Grande Forum , The Java Grande Forum Multi-threaded Benchmarks, available at http://epcc.ed.ac.uk/javagrande/threads.html

    [4] Robert Lougher, JamVMproject , available at http://jamvm.sourceforge.net/

    [5] Wei Huang, Jiang Lin, Zhao Zhang, and J. Morris Chang, “Performance Characterization of Java Applications on SMT Processors,” Proceedings of the IEEE International Symposium on performance Analysis of Systems and Software(ISPASS), p102-111 , 2005

    [6] R. B K., Dewar, “Indirect Threaded Code,” Proceedings of Communications of the ACM , Volume 18 , Issue 6, p.330-331, 1975.

    [7] Marc Berndl, Benjamin Vitale, Mathew Zaleski and Angela Demke Brown,” Context Threading: A flexible and efficient dispatch technique for virtual machine interpreters,” Proceedings of the International Symposium on Code Generation and Optimization(CGO’05), p.15-26, 2005.

    [8] Alexandra Fedorova, Margo Seltzer, Christopher Small and Daniel Nussbaum
    “Performance of Multithreaded Chip Multiprocessors And Implications For Operating System Design” Proceeding of USENIX 2005 Annul Technical Conference , p395-398, 2005.

    [9] M. Anton Ertl , “Stack Caching for Interpreters,” Proceeding of SIGPLAN ’95 Conference on Programming Language Design and Implementation, p315-327, 1995.

    [10] M.Anton Ertl and David Gregg, “The Structure and Performance of Efficient Interpreters” Journal of Instruction-Level Parallelism, Volume 5, p1-25, 2003.

    [11] SimpleScalar , available fromhttp://simplescalar.com/

    [12] Virtutech Simics , available from http://www.virtutech.com/

    [13] 羅仁杰,提升 Java 直譯器效能之新的位元碼轉換技術,國立成功大學工程科學系碩士論文,2005。

    下載圖示 校內:2009-08-29公開
    校外:2011-08-29公開
    QR CODE