How Java']Java programs interact with virtual machines at the microarchitectural level

被引:11
|
作者
Eeckhout, L [1 ]
Georges, A [1 ]
De Bosschere, K [1 ]
机构
[1] Univ Ghent, Dept Elect & Informat Syst, ELIS, B-9000 Ghent, Belgium
关键词
measurement; performance; experimentation; workload characterization; performance analysis; statistical data analysis; !text type='Java']Java[!/text] workloads; virtual machine technology;
D O I
10.1145/949343.949321
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Java workloads are becoming increasingly prominent on various platforms ranging from embedded systems, over general-purpose computers to high-end servers. Understanding the implications of all the aspects involved when running Java workloads, is thus extremely important during the design of a system that will run such workloads. In other words, understanding the interaction between the Java application, its input and the virtual machine it runs on, is key to a successful design. The goal of this paper is to study this complex interaction at the microarchitectural level, e.g., by analyzing the branch behavior, the cache behavior, etc. This is done by measuring a large number of performance characteristics using performance counters on an AMD K7 Duron microprocessor. These performance characteristics are measured for seven virtual machine configurations, and a collection of Java benchmarks with corresponding inputs coming from the SPEGjvm98 benchmark suite, the SPECjbb2000 benchmark suite, the Java Grande Forum benchmark suite and an open-source raytracer, called Raja with 19 scene descriptions. This large amount of data is further analyzed using statistical data analysis techniques, namely principal components analysis and cluster analysis. These techniques provide useful insights in an understandable way. From our experiments, we conclude that (i) the behavior observed at the microarchitectural level is primarily determined by the virtual machine for small input sets, e.g., the SPEQjvm98 s1 input set; (ii) the behavior can be quite different for various input sets, e.g., short-running versus long-running benchmarks; (iii) for long-running benchmarks with few hot spots, the behavior can be primarily determined by the Java program and not the virtual machine, i.e., all the virtual machines optimize the hot spots to similarly behaving native code; (iv) in general, the behavior of a Java application running on one virtual machine can be significantly different from running on another virtual machine. These conclusions warn researchers working on Java workloads to be careful when using a limited number of Java benchmarks or virtual machines since this might lead to biased conclusions.
引用
收藏
页码:169 / 186
页数:18
相关论文
共 50 条
  • [1] Hosting OpenMP Programs on Java']Java Virtual Machines
    Gaikwad, Swapnil
    Nisbet, Andy
    Lujan, Mikel
    [J]. PROCEEDINGS OF THE 16TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON MANAGED PROGRAMMING LANGUAGES AND RUNTIMES (MPLR '19), 2019, : 63 - 71
  • [2] THE TRANSITIVE TRUST IN JAVA']JAVA VIRTUAL MACHINES
    Shi, Yong
    Han, Zhen
    Shen, Chang-Xiang
    [J]. PROCEEDINGS OF 2009 INTERNATIONAL CONFERENCE ON MACHINE LEARNING AND CYBERNETICS, VOLS 1-6, 2009, : 2802 - +
  • [3] The new crop of Java']Java™ virtual machines
    Bak, L
    Duimovich, J
    Fang, J
    Meyer, S
    Ungar, D
    [J]. ACM SIGPLAN NOTICES, 1998, 33 (10) : 179 - 182
  • [4] Automatic Array Inlining in Java']Java Virtual Machines
    Wimmer, Christian
    Moessenboeck, Hanspeter
    [J]. CGO 2008: SIXTH INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION, PROCEEDINGS, 2008, : 14 - 23
  • [5] Automated Conformance Testing of Java']Java Virtual Machines
    Calvagna, Andrea
    Tramontana, Emiliano
    [J]. 2013 SEVENTH INTERNATIONAL CONFERENCE ON COMPLEX, INTELLIGENT, AND SOFTWARE INTENSIVE SYSTEMS (CISIS), 2013, : 547 - 552
  • [6] Securing Sensitive Data in Java']Java Virtual Machines
    Deng, Lin
    Wei, Bingyang
    Guo, Jin
    Benke, Matt
    Howard, Tyler
    Krause, Matt
    Patel, Aman
    [J]. 2022 IEEE/ACIS 20TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING RESEARCH, MANAGEMENT AND APPLICATIONS (SERA), 2022, : 128 - 131
  • [7] Java']Java virtual machines behavior on embedded systems
    Ammous, Karim
    Benameur, Nasser
    Niar, Smail
    [J]. PROCEEDINGS OF THE IASTED INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 2007, : 302 - +
  • [8] A Defensive Java']Java Card Virtual Machine to Thwart Fault Attacks by Microarchitectural Support
    Lackner, Michael
    Berlach, Reinhard
    Hraschan, Michael
    Weiss, Reinhold
    Steger, Christian
    [J]. 2013 INTERNATIONAL CONFERENCE ON RISKS AND SECURITY OF INTERNET AND SYSTEMS (CRISIS), 2013,
  • [9] The Impact of Java']Java Applications at Microarchitectural Level from Branch Prediction Perspective
    Florea, Adrian
    Gellert, Arpad
    Vintan, Lucian
    Veltan, Marius
    [J]. INTERNATIONAL JOURNAL OF COMPUTERS COMMUNICATIONS & CONTROL, 2009, 4 (01) : 27 - 40
  • [10] Managing the life cycle of Java']Java Card applets in other Java']Java virtual machines
    Roland, Michael
    Langer, Josef
    Mayrhofer, Rene
    [J]. INTERNATIONAL JOURNAL OF PERVASIVE COMPUTING AND COMMUNICATIONS, 2014, 10 (03) : 291 - +