Dynamic bytecode usage by object oriented Java programs

J. Waldron
{"title":"Dynamic bytecode usage by object oriented Java programs","authors":"J. Waldron","doi":"10.1109/TOOLS.1999.779084","DOIUrl":null,"url":null,"abstract":"Java is an object oriented language that has grown in popularity since its release in 1996 and is particularly interesting because it uses a byte code intermediate language to represent programs, so that the same program can be run unchanged on machines with different underlying instruction sets. To measure dynamic byte code usage it was necessary to modify the source code Kaffe, a Java Virtual Machine. A selection of programs was measured to compare the way different applets and applications use the bytecodes, and it was found that very similar patterns of usage appear in all cases. For the test suite studied most of the bytecodes were used at least once during execution. However a small subset of the bytecodes was executed with very high frequency. 40% of instructions executed either pushed local variables or constants onto the operand stack, merely telling the useful instructions which operands to use. This result questions the stack based design for the intermediate representation of Java programs, since the bytecodes only occupy on average twelve percent of a class file, an intermediate representation that is less compact, but executes more efficiently might be possible.","PeriodicalId":434404,"journal":{"name":"Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275)","volume":"74 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1999-06-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"13","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/TOOLS.1999.779084","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 13

Abstract

Java is an object oriented language that has grown in popularity since its release in 1996 and is particularly interesting because it uses a byte code intermediate language to represent programs, so that the same program can be run unchanged on machines with different underlying instruction sets. To measure dynamic byte code usage it was necessary to modify the source code Kaffe, a Java Virtual Machine. A selection of programs was measured to compare the way different applets and applications use the bytecodes, and it was found that very similar patterns of usage appear in all cases. For the test suite studied most of the bytecodes were used at least once during execution. However a small subset of the bytecodes was executed with very high frequency. 40% of instructions executed either pushed local variables or constants onto the operand stack, merely telling the useful instructions which operands to use. This result questions the stack based design for the intermediate representation of Java programs, since the bytecodes only occupy on average twelve percent of a class file, an intermediate representation that is less compact, but executes more efficiently might be possible.
动态字节码的使用面向对象的Java程序
Java是一种面向对象的语言,自1996年发布以来越来越受欢迎,它特别有趣,因为它使用字节码中间语言来表示程序,因此相同的程序可以在具有不同底层指令集的机器上不加改变地运行。为了测量动态字节码的使用情况,有必要修改源代码Kaffe,一个Java虚拟机。我们对一些程序进行了测量,以比较不同的applet和应用程序使用字节码的方式,发现在所有情况下都出现了非常相似的使用模式。对于所研究的测试套件,大多数字节码在执行期间至少使用一次。然而,一小部分字节码以非常高的频率执行。40%执行的指令要么将局部变量或常量压入操作数堆栈,要么仅仅告诉有用的指令使用哪些操作数。这个结果对Java程序中间表示的基于堆栈的设计提出了质疑,因为字节码平均只占用类文件的12%,所以可能会有一种不那么紧凑但执行效率更高的中间表示。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信