Experiments in Cost Analysis of Java']Java Bytecode

被引:7
|
作者
Albert, E. [1 ]
Arenas, P. [1 ]
Genaim, S. [2 ]
Puebla, G. [2 ]
Zanardini, D. [2 ]
机构
[1] Univ Complutense Madrid, DSIC, Madrid, Spain
[2] Tech Univ Madrid, Madrid, Spain
关键词
Cost analysis; !text type='Java']Java[!/text] bytecode; cost relations; recurrence equations; complexity;
D O I
10.1016/j.entcs.2007.02.061
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Recently, we proposed a general framework for the cost analysis of Java bytecode which can be used for measuring resource usage. This analysis generates, at compile-time, cost relations which define the cost of programs as a function of their input data size. The purpose of this paper is to assess the practicality of such cost analysis by experimentally evaluating a prototype analyzer implemented in Ciao. With this aim, we approximate the computational complexity of a set of selected benchmarks, including both well-known algorithms which have been used to evaluate existing cost analyzers in other programming paradigms, and other benchmarks which illustrate object-oriented features. In our evaluation, we first study whether the generated cost relations can be automatically solved. Our experiments show that in some cases the inferred cost relations can be automatically solved by using the Mathematica system, whereas, in other cases, some prior manipulation is required for the equations to be solvable. Moreover, we experimentally evaluated the running time of the different phases of the analysis process. Overall, we believe our experiments show that the efficiency of our cost analysis is acceptable, and that the obtained cost relations are useful in practice since, at least in our experiments, it is possible to get a closed form solution.
引用
收藏
页码:67 / 83
页数:17
相关论文
共 50 条
  • [41] A Java']Java bytecode optimizer using side-effect analysis
    Clausen, LR
    CONCURRENCY-PRACTICE AND EXPERIENCE, 1997, 9 (11): : 1031 - 1045
  • [42] Java']Java bytecode verification for @NonNull types
    Male, Chris
    Pearce, David J.
    Potanin, Alex
    Dymnikov, Constantine
    COMPILER CONSTRUCTION, 2008, 4959 : 229 - 244
  • [43] Bytecode verification on Java']Java smart cards
    Leroy, X
    SOFTWARE-PRACTICE & EXPERIENCE, 2002, 32 (04): : 319 - 340
  • [44] Bytecode fault injection for Java']Java software
    Ghosh, Sudipto
    Kelly, John L.
    JOURNAL OF SYSTEMS AND SOFTWARE, 2008, 81 (11) : 2034 - 2043
  • [45] A type system for Java']Java bytecode subroutines
    Stata, R
    Abadi, M
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1999, 21 (01): : 90 - 137
  • [46] A Plagiarism Detection Technique for Java']Java Program Using Bytecode Analysis
    Ji, Jeong-Hoon
    Woo, Gyun
    Cho, Hwan-Gue
    THIRD 2008 INTERNATIONAL CONFERENCE ON CONVERGENCE AND HYBRID INFORMATION TECHNOLOGY, VOL 1, PROCEEDINGS, 2008, : 1092 - 1098
  • [47] Dynamic slicing on Java']Java bytecode traces
    Wang, Tao
    Roychoudhury, Abhik
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2008, 30 (02):
  • [48] A Framework for Debugging Java']Java Programs in a Bytecode
    Soomro, Safeeullah
    Belgaum, Mohammad Riyaz
    Alansari, Zainab
    Miraz, Mahdi H.
    2018 INTERNATIONAL CONFERENCE ON COMPUTING, ELECTRONICS & COMMUNICATIONS ENGINEERING (ICCECE), 2018, : 317 - 322
  • [49] Java']Java bytecode verification: Algorithms and formalizations
    Leroy, X
    JOURNAL OF AUTOMATED REASONING, 2003, 30 (3-4) : 235 - 269
  • [50] Dynamic slicing of Java']Java bytecode programs
    Szegedi, A
    Gyimóthy, T
    FIFTH IEEE INTERNATIONAL WORKSHOP ON SOURCE CODE ANALYSIS AND MANIPULATION, PROCEEDINGS, 2005, : 35 - 44