首页 / 专利库 / 人工智能 / 语言代码 / 一种JAVA在平台优化运行的方法

一种JAVA在平台优化运行的方法

阅读:42发布:2020-05-14

专利汇可以提供一种JAVA在平台优化运行的方法专利检索,专利查询,专利分析的服务。并且本 发明 公开一种JAVA在平台优化运行的方法,涉及计算机技术领域;在字节码编译阶段混入.s文件中,将JAVA的动态调用转化为C的动态调用,而且JAVA的字节码生成在平台可直接运行的机器码,平台通过动态库使C/C++语言更容易调用JAVA程序,性能方面远比JAVA字节码解释运行快得多,同时解决了JAVA 语言代码 安全问题,生成的机器码不依赖于第三方特定程序就能执行,还方便与C/C++语言的集成。,下面是一种JAVA在平台优化运行的方法专利的具体信息内容。

1.一种JAVA在平台优化运行的方法,其特征是将JAVA通用的.class文件中的字节码进行预编译分析字节码文件结构,再进行编译生成汇编码.s文件,将汇编码.s文件汇编生成组织格式为.o文件的目标代码文件,目标代码文件之间通过链接确认互相依赖关系,生成在平台运行的机器码,用于执行JAVA及相应动态库。
2.根据权利要求1所述的方法,其特征是将JAVA的main方法的字节码文件生成直接运行的机器码,把其它字节码文件分别生成动态库。
3.根据权利要求1或2所述的方法,其特征是通过词法分析、句法分析和语义分析将字节码编译生成汇编码.s文件。
4.根据权利要求3所述的方法,其特征是利用gcc编译器对字节码进行预编译、编译及汇编。
5.一种JAVA在平台运行的优化工具,其特征是包括优化单元,
优化单元将JAVA通用的.class文件中的字节码进行预编译分析字节码文件结构,再进行编译生成汇编码.s文件,将汇编码.s文件汇编生成组织格式为.o文件的目标代码文件,目标代码文件之间通过链接确认互相依赖关系,生成在平台运行的机器码,用于执行JAVA及相应动态库。
6.根据权利要求5所述的优化工具,其特征是优化单元将JAVA的main方法的字节码文件生成直接运行的机器码,把其它字节码文件分别生成动态库。
7.根据权利要求5或6所述的优化工具,其特征是优化单元通过词法分析、句法分析和语义分析将字节码编译生成汇编码.s文件。
8.根据权利要求7所述的优化工具,其特征是优化单元利用gcc编译器对字节码进行预编译、编译及汇编。

说明书全文

一种JAVA在平台优化运行的方法

技术领域

[0001] 本发明公开一种JAVA在平台优化运行的方法,涉及计算机技术领域。

背景技术

[0002] JAVA是一种跨平台语言,使用范围较广。JAVA的特性实现了跨平台,与平台无关的字节码可在多种平台上由JVM解释执行,但问题是性能慢,并可从字节码比较容易地反汇编出源代码,系统不安全。
[0003] 现有的方式,平台运行JAVA时,利用高版本的oracle JDK提供的Hotspot JVM提供了JIT(Just In Time)编译器,动态编译器,在程序运行时,JIT通过预热将热点代码转换为机器码,将编译过程的字节码缓存在codeCache中,而这种情况下,部分热点代码是编译执行而不是解释执行,虽然JIT部分提升了JAVA程序的运行性能,但需要加载时编译,仍然消耗时间长,代码安全问题也并未解决。
[0004] 另外oracle  JDK9提出了一种新的编译方式即AOT(ahead-of-time complication),直接将字节码编译成机器码,避免了JIT等方面的预热消耗,但是aot编译出的代码是静态的,性能虽有较大提升,但程序运行时仍然需要依赖JAVA及.class文件,运行时仍然需要依赖原有的HelloWorld.class文件,代码安全性问题仍未解决。
[0005] 而本发明是公开一种JAVA在平台优化运行的方法,将JAVA通用的字节码.class文件直接编译成与C/C++程序生成一样的机器码,包括可执行JAVA程序及动态库,JAVA程序可在操作系统下直接运行,不需依赖第三方程序,既解决了JAVA程序的性能问题又解决了代码安全问题,还方便与C/C++语言的集成。

发明内容

[0006] 本发明针对现有技术的问题,提供一种JAVA在平台优化运行的方法,具有通用性强、实施简便等特点,具有广阔的应用前景。
[0007] 本发明提出的具体方案是:
[0008] 一种JAVA在平台优化运行的方法,将JAVA通用的.class文件中的字节码进行预编译分析字节码文件结构,再进行编译生成汇编码.s文件,将汇编码.s文件汇编生成组织格式为.o文件的目标代码文件,目标代码文件之间通过链接确认互相依赖关系,生成在平台运行的机器码,用于执行JAVA及相应动态库。
[0009] 所述的方法中将JAVA的main方法的字节码文件生成直接运行的机器码,把其它字节码文件分别生成动态库。
[0010] 所述的方法中通过词法分析、句法分析和语义分析将字节码编译生成汇编码.s文件。
[0011] 所述的方法中利用gcc编译器对字节码进行预编译、编译及汇编。
[0012] 一种JAVA在平台运行的优化工具包括优化单元,
[0013] 优化单元将JAVA通用的.class文件中的字节码进行预编译分析字节码文件结构,再进行编译生成汇编码.s文件,将汇编码.s文件汇编生成组织格式为.o文件的目标代码文件,目标代码文件之间通过链接确认互相依赖关系,生成在平台运行的机器码,用于执行JAVA及相应动态库。
[0014] 所述的优化工具中优化单元将JAVA的main方法的字节码文件生成直接运行的机器码,把其它字节码文件分别生成动态库。
[0015] 所述的优化工具中优化单元通过词法分析、句法分析和语义分析将字节码编译生成汇编码.s文件。
[0016] 所述的优化工具中优化单元利用gcc编译器对字节码进行预编译、编译及汇编。
[0017] 本发明的有益之处是:
[0018] 本发明提供一种JAVA在平台优化运行的方法,在字节码编译阶段混入.s文件中,将JAVA的动态调用转化为C的动态调用,而且JAVA的字节码生成在平台可直接运行的机器码,平台通过动态库使C/C++语言更容易调用JAVA程序,性能方面远比JAVA字节码解释运行快得多,同时解决了JAVA语言代码安全问题,生成的机器码不依赖于第三方特定程序就能执行,还方便与C/C++语言的集成。附图说明
[0019] 图1是本发明方法流程示意图。

具体实施方式

[0020] 本发明提供一种JAVA在平台优化运行的方法,将JAVA通用的.class文件中的字节码进行预编译分析字节码文件结构,再进行编译生成汇编码.s文件,将汇编码.s文件汇编生成组织格式为.o文件的目标代码文件,目标代码文件之间通过链接确认互相依赖关系,生成在平台运行的机器码,用于执行JAVA及相应动态库。
[0021] 同时提供与上述方法相应的一种JAVA在平台运行的优化工具包括优化单元,[0022] 优化单元将JAVA通用的.class文件中的字节码进行预编译分析字节码文件结构,再进行编译生成汇编码.s文件,将汇编码.s文件汇编生成组织格式为.o文件的目标代码文件,目标代码文件之间通过链接确认互相依赖关系,生成在平台运行的机器码,用于执行JAVA及相应动态库。
[0023] 下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
[0024] 利用本发明方法,将JAVA通用的.class文件中的字节码进行预编译、编译、汇编、链接,生成与平台相关的高性能机器码可执行程序,
[0025] 其中预编译阶段通过预读整个字节码文件,初步分析字节码文件结构,再利用词法分析、句法分析和语义分析方法进行编译生成汇编码.s文件,汇编阶段把汇编码.s文件转为机器语言并进行相应优化,将汇编码.s文件汇编生成组织格式为.o文件的目标代码文件,目标代码文件之间通过链接确认互相依赖关系,生成最终的可在操作系统下直接运行的机器码可执行程序及相应动态库。
[0026] 在上述过程中,把JAVA含有main方法的字节码文件生成直接运行的机器码可执行程序,把其它字节码文件分别生成一个个动态库,动态库均可被C/C++等其它语言调用,相比JAVA的JNI,通过动态库使C/C++语言更容易调用JAVA程序,
[0027] 在上述过程中,可利用gcc编译器对字节码进行预编译、编译及汇编,以及相应的目标代码文件之间通过链接确认互相依赖关系,生成在平台运行的机器码,用于执行JAVA及相应动态库。
[0028] 上述过程中在字节码编译阶段混入.s文件中,将JAVA的动态调用转化为C的动态调用,可用于Linux平台,也可用于Unix、Windows等平台,针对不同类型的CPU可使用不同版本的编译器。
[0029] 同样,利用本发明优化工具进行JAVA在平台优化运行时,优化单元将JAVA通用的.class文件中的字节码进行预编译、编译、汇编、链接,生成与平台相关的高性能机器码可执行程序,
[0030] 其中优化单元在预编译阶段通过预读整个字节码文件,初步分析字节码文件结构,再利用词法分析、句法分析和语义分析方法进行编译生成汇编码.s文件,汇编阶段把汇编码.s文件转为机器语言并进行相应优化,将汇编码.s文件汇编生成组织格式为.o文件的目标代码文件,目标代码文件之间通过链接确认互相依赖关系,生成最终的可在操作系统下直接运行的机器码可执行程序及相应动态库。
[0031] 在上述过程中,优化单元把JAVA含有main方法的字节码文件生成直接运行的机器码可执行程序,把其它字节码文件分别生成一个个动态库,动态库均可被C/C++等其它语言调用,相比JAVA的JNI,通过动态库使C/C++语言更容易调用JAVA程序,
[0032] 在上述过程中,优化单元可利用gcc编译器对字节码进行预编译、编译及汇编,以及相应的目标代码文件之间通过链接确认互相依赖关系,生成在平台运行的机器码,用于执行JAVA及相应动态库。
[0033] 上述过程中优化单元在编译阶段将字节码混入.s文件中,将JAVA的动态调用转化为C的动态调用,可用于Linux平台,也可用于Unix、Windows等平台,针对不同类型的CPU可使用不同版本的编译器。
[0034] 以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈