跳到主要內容

臺灣博碩士論文加值系統

(216.73.216.59) 您好!臺灣時間:2025/10/14 18:23
字體大小: 字級放大   字級縮小   預設字形  
回查詢結果 :::

詳目顯示

: 
twitterline
研究生:林祐辰
研究生(外文):Lin, You-Chen
論文名稱:符合 Java 8 標準之 InvokeDynamic 指令在 CVM 之實作
論文名稱(外文):Implementation of Java 8-compliant InvokeDynamic Bytecode for CVM
指導教授:蔡淳仁
指導教授(外文):Tsai, Chun-Jen
口試委員:蔡淳仁楊武曾紹崟
口試委員(外文):Tsai, Chun-JenYang, WuuTseng, Shao-Yin
口試日期:2019-5-30
學位類別:碩士
校院名稱:國立交通大學
系所名稱:資訊科學與工程研究所
學門:工程學門
學類:電資工程學類
論文種類:學術論文
論文出版年:2019
畢業學年度:107
語文別:中文
論文頁數:36
中文關鍵詞:爪哇虛擬機器調用
外文關鍵詞:Javavirtual machineInvoke
相關次數:
  • 被引用被引用:0
  • 點閱點閱:268
  • 評分評分:
  • 下載下載:5
  • 收藏至我的研究室書目清單書目收藏:0
CVM是由昇陽電腦公司所設計的Java virtual machine (JVM)。其主要執行的環境為有網路連結的設備。相較於其它用於嵌入式系統的JVM,CVM的優點除了程式碼本身較小、具有高效能的 Just-In-Time編譯技術、支援基本Java程式執行所需的最小核心 class libraries只要一百二十六個classes、並且是目前能支援最多處理器平台的Java VM。然而昇陽電腦所釋出的開放原始碼版本的CVM僅支援到Java 2 Micro Edition (J2ME)的VM規範,在甲骨文公司收購昇陽電腦之後,他們就停止釋出新版CVM的原始碼了。本論文的主要目的是要修改J2ME 的CVM原始碼,以支援新的JVM規格中InvokeDynamic bytecode的執行。
InvokeDynamic指令為Java 7新增的功能,提供使用者一個較簡潔的 method 呼叫界面。特別是在Java 8的標準中,廣泛使用了Lambda表示式進行method 呼叫,而在VM底層,Lambda 表示式會產生出InvokeDynamic的bytecode指令。本論文提出對CVM作修改的方法,使其能夠支援符合Java 8規範之InvokeDynamic指令,並且補上該指令所需要之class library,論文目標是讓修改後的J2ME CVM可以通過OpenJDK 8 內附的lambda測試並執行包含lambda表示式之Java程式,並進而執行一些 Java 8 的應用程式。
CVM (the J2ME/CDC JIT-capable VM) is a Java virtual machine released by Sun Microsystems for connected devices. Compare with other JVMs, CVM has some features that are suitable for embedded systems, such as, smaller code size, a high performance Just-in-time compiler, and a small 126-class core library for minimal Java application execution. Most importantly, it has been ported to the largest number of different CPU architecture. However, the open-source version of CVM only supports Java 2 Micro Edition (J2ME). After the acquisition of Sun by Oracle, they stop releasing the new source code of CVM. The goal of this paper is to modify the open-source version of CVM to support the InvokeDynamic bytecode, which was added to the JVM specification since Java 7.
The InvokeDynamic instruction provides a cleaner interface for method invocations. In particular, starting in Java 8, Lambda expressions are extensively used for method invocation. Java source code with Lambda expressions will be compiled to InvokeDynamic bytecodes. In addition to adding the bytecode support for InvokeDynamic to CVM, we will also extend the CVM classes library with the Java classes required by InvokeDynamic. In this thesis, the OpenJDK lambda expression tests will be used to verify the proposed implementation. We will also use some large open-source Java programs that contain lambda expressions to verify the correctness of the modified CVM.
Abstract i
摘要 ii
致謝 iii
目錄 iv
圖目錄 vi
第一章 前言 1
1.1 研究動機 1
1.2 研究成果 1
1.3 論文架構 1
第二章 相關研究 3
2.1 JVM overview 3
2.2 Invoke Instruction 4
2.2.1 Invokestatic 4
2.2.2 Invokevirtual 5
2.2.3 Invokespecial 5
2.2.4 Invokeinterface 6
2.2.5 Optimization 6
2.3 支援InvokeDynamic之JVM 6
2.4 CVM系統架構簡介 7
2.4.1 J2ME 7
2.4.2 Class Verification 9
2.4.3 Attribute 9
2.4.4 Offset 10
2.4.5 Constant Pool 10
2.4.6 TopOfStack and PC 11
2.4.7 Just in Time Compiler 12
第三章 實作Lambda expression and InvokeDynamic instruction 13
3.1 Lambda表示式 13
3.2 Constant Pool Type 14
3.2.1 MethodHandle_info 15
3.2.2 MethodType_info 15
3.2.3 InvokeDynamic_info 15
3.2.4 Modified CVM constant pool 16
3.3 BootstrapMethods attribute 16
3.4 Java.lang.invoke package 18
3.4.1 CallSite 18
3.4.2 Methodhandlenatives 19
3.5 InvokeDynamic instruction 21
3.5.1 Opcode 186 21
3.5.2 InvokeDynamic verify 21
3.5.3 Execute a InvokeDynamic 22
3.5.4 執行其他invoke指令 23
3.6 Modified CVM JIT 23
第四章 實驗結果 25
4.1 實驗環境 25
4.2 實驗測資 25
4.2.1 OpenJDK Lambdatest 25
4.2.2 TomEE server 28
4.3 實驗結果 29
4.3.1 CVM以上之執行結果 29
4.3.2 TomEE之執行結果 30
4.3.3 Hotspot VM與CVM之InvokeDynamic效能比較 30
4.3.4 Invoke method之速度比較 32
第五章 結論與未來展望 34
參考文獻 35
[1] ken Arnold, James Gosling, David Holmes, The Java Programming Language, Canada: Prentice Hall, 2005.
[2] Sun Microsystems, Inc., CDC HotSpot Implementation Dynamic Compiler Architecture Guide, 2005.
[3] John Hennessy, Norman Jouppi,Steven Przybylski, “MIPS: A Microprocessor Architecture,” ACM SIGMICRO, pp. 17 - 22, 1982.
[4] D. Jaggar, “ARM ARCHITECURE AND SYSTEMS,” IEEE MICRO, pp. 9 - 11, July/August 1997.
[5] M. J. Bach, The Design of the Unix Operating System, Prentice-Hall, 1986.
[6] James Gosling, Guy L.Steele JR., Gilad Bracha, The Java Language Specification, Java SE 8 Edition, Addison-Wesley Professional, 2014.
[7] Eben Upton, Gareth Halfacree, Raspberry Pi User Guide, Great Britain and United States: British Library, 2012.
[8] L. Hendren, Soot - a Java Bytecode Optimization Framework, Sable Research Group, 2010.
[9] R. Vallée-Rai, Optimizing Java Bytecode Using the Soot Framework: Is It Feasible, Lecture Notes in Computer Science bppl series, 2001.
[10] A. Chander, J.C. Mitchell ; I. Shin, Mobile code security by Java bytecode instrumentation, Anaheim, CA, USA, USA: IEEE, 2002.
[11] Han Bok Lee and Benjamin G.zorn, BIT: A Tool for Instrumenting Java Bytecodes, colorado, Boulder: USENIX, 1997.
[12] P. B. Kessler, Java HotSpot Virtaual Machine, Amarican: FOSDEM, 2007.
[13] R. Lougher, JamVM, Aktualizace, 2007.
[14] M. A. E. *, Superinstructions and Replication in the Cacao JVM interpreter, A Krall, 2006.
[15] M. G. Burke, The Jalapeño dynamic optimizing compiler for Java, Yorktown Heights: IBM Thomas J. Watson Research Center, 2000.
[16] C. Thalinger, Optimizing Invokedynamic, Oracle, 2012.
[17] F. Ortin, The Runtime Performance of invokedynamic: An Evaluation with a Java Library, IEEE, 2013.
[18] J. Ponge, JooFlix: Hijacking Java 7 InvokeDynamic to Support Llive code, Unite State, 2012.
[19] R. Stallman, The GNU Project, United States: book open source, 1998.
[20] D. Blevins, “Apache Tomee tomcat with a kick,” Apache.org, 2011.
連結至畢業學校之論文網頁點我開啟連結
註: 此連結為研究生畢業學校所提供,不一定有電子全文可供下載,若連結有誤,請點選上方之〝勘誤回報〞功能,我們會盡快修正,謝謝!
QRCODE
 
 
 
 
 
                                                                                                                                                                                                                                                                                                                                                                                                               
第一頁 上一頁 下一頁 最後一頁 top
無相關期刊