版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、大學部專題期末報告小型JIT編譯器之最佳化技術評估目錄 P0大學部專題期末報告小型JIT編譯器之最佳化技術評估大學部專題期末報告小型JIT編譯器之最佳化技術評估指導教授: 單智君 副教授專題製作: 鍾懿軒 8916039 蔣季融 8916040 李國丞 8916094目錄題目定義及說明.P.1研究動機.P.2背景介紹.P.3研究方法及步驟.P.4預期結果.P.6進度排程.P.7分工情形.P.7參考文獻.P.8大學部專題期末報告小型JIT編譯器之最佳化技術評估I.題目定義及說明 P.1題目定義及說明“小型JIT編譯器之最佳化技術評估”取代傳統Java程式以直譯模式(Interpret)執行,改由
2、在程式執行時間(Execution-Time)即時將Java Bytecode編譯為底層處理器所認識的Native code,以利執行效率,即稱為JIT(Just-In-Time)技術。JIT Compiler與一般常見Static Compiler所做的工作十分相似,最終的目的皆為Code-generation。為了產生有效率的機器碼,JIT Compiler也必須使用一些最佳化技術來增進效能,但是,當JIT Compiler在手機、PDA等小型設備上執行編譯時,必須同時考量到即時性與運算速度上的限制,故我們需要從現有的最佳化技術中有所取捨,並經由評估技術來得到驗證。大學部專題期末報告小型J
3、IT編譯器之最佳化技術評估II. 研究動機 P.2研究動機Java程式語言因具備跨平台、安全性、適合網路應用以及容易撰寫應用程式幾個特性成為大家的新寵,但由於傳統Java Virtual Machine對程式所採用直譯(interpret) 2的方法使其執行效率不彰,是大家始終有所失望的原因。JIT(Just in time) Compiler的出現,將原本直譯的方式改為即時編譯成底層所認識的native code,改善了Java執行的速度。近年來,小型數位產品急速成長,對於應用程式的需求變得不但要種類多、更要效率高。 因此,為了要提升Java程式在小型數位產品上的執行效能,如何在記憶體資源有
4、限的情況下,開發小型JIT Compiler (Mini-JIT Compiler)執行架構是現今熱門的研究領域。許多傳統JIT的設計,為了強調得到更好的效能,著重於各種最佳化機制的設計,也因此這類JIT Compiler通常包含五六個以上的最佳化技術在其中。若是應用在記憶體資源有限的環境下,往往效果適得其反,容易讓系統不斷的需要進行記憶體資源回收(Garbage collection) 11。所以,我們希望針對傳統JIT Compiler的最佳化技術進行效能上的分析及修改,將JIT Compiler有效縮小,以符合Embedded System3執行環境之需求,同時達成效能增進與較少系統資源
5、的使用。大學部專題期末報告小型JIT編譯器之最佳化技術評估III. 背景介紹 P3背景介紹以直譯(Interpret)方式實做的Java Virtual Machine(JVM),由於效能上的低落5,因此我們專題以JIT compiler的最佳化技術為基礎,增進執行Java程式上的效能。下面將介紹的是目前JIT Compiler上最廣泛被使用的技術之一,指令折疊技術(Instruction Folding)。指令折疊 (Instruction folding),最初應用在Stack Machine上4,由於在堆疊機器架構下,指令佔有極大的比例在處理一般的堆疊指令(如Push、Pop指令) 56
6、,我們發現有其中許多時間是花在對堆疊的資料搬移上,比如說把計算完的結果放回堆疊,而下一道指令馬上要用到此結果,就必須再從堆疊中將值取出,之中若能將寫入資料到堆疊的動作省略掉,直接將資料送至下道欲用到該值的指令執行,則可以省掉Push、Pop的次數6789,指令折疊的目的就在於尋找此類可簡化的指令群(Folding Group),藉以達到提升效能的功能。大學部專題期末報告小型JIT編譯器之最佳化技術評估IV.研究方法及步驟P.4研究方法及步驟瞭解Java Bytecode在KVM2 3上之執行之方式Java Bytecode是由Java source code經過javac程式所編譯而成的一連串
7、堆疊指令,但它並不是可由底層架構直接執行的machine code,而是要再經過一個虛擬機器(Virtual machine)的處理,才能順利地呼叫下層架構來執行。KVM(K Virtual Machine)2即為J2ME環境下的Java Virtual Machine,其K指的就是專門為記憶體限制在數十至數百Kilo Bytes之內的小型器材所設計,目前可執行Java程式的數位器材如手機、PDA等皆是以KVM為架構,使用上可謂相當的普遍。由於執行環境的資源有限,造成了效能上的不佳,於是,想要改善此現象,我們將先瞭解KVM是如何處理所讀入的Bytecode,以及透過什麼樣的機制去呼叫底層的架構
8、來執行開始著手。大學部專題期末報告小型JIT編譯器之最佳化技術評估IV.研究方法及步驟P.5認識底層機器平台(ARM)我們的專題以ARM CPU做為模擬的環境,ARM為一個精簡指令集(RISC)的CPU10,由於JIT的精神即在於將Bytecode即時編譯成底層架構所認識的native code來增進執行效能,所以在瞭解Bytecode在KVM上的執行方式後,我們將學習ARM CPU的指令集,以利於專題的進行。探討Java直譯模式之執行環境的效能瓶頸目前的KVM執行Bytecode檔案的方式仍是沿用一般JVM所使用的直譯(Interprete)方式來進行2,但是使用直譯的作法在資源及執行速度有
9、限的小型器材上卻顯得捉巾見肘,在效能不彰的情況下,我們將研究直譯方式其缺點為何,還有會讓執行速度變慢的關鍵因素,以尋求其最佳化方案。針對效能瓶頸設計最佳化技術與合適之JIT結構在經過上述所提的研究步驟後,我們將匯集所得的結果,提出Java程式在KVM上執行的效能瓶頸,然後針對此瓶頸尋求並設計出能改善效能的最佳化技術,加以整合或刪除成為我們的JIT Compiler。大學部專題期末報告小型JIT編譯器之最佳化技術評估V.預期結果P.6最佳化技術與演算法之評估大學部專題期末報告小型JIT編譯器之最佳化技術評估VI.進度排程 VII.分工情形P.7使用我們選定的最佳化技術以及合適的JIT Compi
10、ler結構,將各演算法程式拿到此JIT上執行,做出最佳化技術對演算法的影響評估。預期結果專題將整合研究所得的結果,設計出Mini-JIT之結構與搭配之最佳化模式。我們專題將利用JIT即時編譯的概念,搭配有效的最佳化技術,透過評估的方式來驗證最佳化技術的成效。進度排程預定專題進度如下圖:分工情形目前仍在研讀各細節資料,並沒有明確的分工,不過未來對於JIT Compiler的架構設計以及效能評估上,會做出確實的分工。大學部專題期末報告小型JIT編譯器之最佳化技術評估VIII.參考文獻P. 8參考文獻1T. Suganuma, T. Ogasawara, M. Takeuchi, T. Yasue,
11、 M. Kawahito, K. Ishizaki, H. Komatsu, T. Nakatani. Overview of the IBM Java Just-in-Time Compiler , 2000 2Sun Microsystems, Connected, Limited Device Configuration Specification Version 1.0, Java 2 Platform Micro Edition, Revision 1.0, Sun Microsystems Inc., May 2000. 3Sun Microsystems ,JavaTM 2 Pl
12、atform Micro Edition (J2METM) Technology for creating Mobil Devices White Paper, Sun Microsystems Inc., May 2000. 4Han-Min Tseng, Instruction Folding Analysis in Java Processor, Master Thesis, Department of Computer Science and Information Engineering, National Chiao-Tung University, Taiwan, R.O.C.,
13、 June 1997. 5Han-Min Tseng, et. al., “Performance Enhancement by Folding Strategies of a Java Processor”, Proceedings of the International Conference on Computer System Technology for Industrial Applications Internet and Multimedia, April 1997 6Lee-Ren Ton, et al., “Instruction Folding in Java Proce
14、ssor,” Proceedings of the International Conference on Parallel and Distributed Systems, December 1997, 7L. C. Chang, L. R. Ton, M. F. Kao and C. P. Chung, Stack Operations Folding in Java Processors, Proceedings of IEE Computers and Digital Techniques, vol. 145, no. 5, September 1998. 8L. C. Chang,
15、L. R. Ton, M. F. Kao and C. P. Chung, A Method of Instruction Folding and Its Implementation, CASES98 - Workshop on Compiler and Architecture Support for Embedded Systems, December 1998. 9Kim, A. Chang, M., ”Advanced POC model-based Java instruction folding mechanism”, Dept. of Comput. Sci., Illinois Inst. of Technol., Chicago, IL, 大學部專題期末報告小型JIT編譯器之最佳化技術評估VIII.參考文獻P. 9Proceedings of the 26th USA - Euromicro Conference, 2000. 10S.B. Furber, ARM System-on-Chip Architecture , Addison Wesley Longman Publishing Company, Inc, 2000.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《社会心理因素》课件
- 《电信业风云》课件
- 寒假自习课 25春初中道德与法治八年级下册教学课件 第二单元 第2课时 公民基本义务
- 《沙盘规则介绍》课件
- 《定价的基本策略》课件
- 班干部工作总结3篇
- 2023年学校志愿者心得体会字万能-学校志愿者工作总结(5篇)
- 2023-2024年项目部安全培训考试题附答案(典型题)
- 毕业销售实习报告模板汇编八篇
- 2023年项目部安全管理人员安全培训考试题及参考答案(模拟题)
- 企业法律顾问详细流程
- 中国商贸文化商道
- 云数据中心建设项目可行性研究报告
- 《新生儿视网膜动静脉管径比的形态学分析及相关性研究》
- 无重大疾病隐瞒保证书
- 2024年春概率论与数理统计学习通超星期末考试答案章节答案2024年
- 企业形象设计(CIS)战略策划及实施计划书
- 2023-2024学年广西桂林市高二(上)期末数学试卷(含答案)
- xx公路与天然气管道交叉方案安全专项评价报告
- 国家职业技术技能标准 6-31-01-09 工程机械维修工(堆场作业机械维修工)人社厅发202226号
- DB11∕T 1077-2020 建筑垃圾运输车辆标识、监控和密闭技术要求
评论
0/150
提交评论