Comparing Low-Level Behavior of SPEC CPU and Java Workloads

  • Andy Georges
  • Lieven Eeckhout
  • Koen De Bosschere
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3740)


Java workloads are becoming more prominent on a wide range of computing devices. In contrast to so-called traditional workloads written in C and Fortran, Java workloads are object-oriented and comprise a virtual machine. The latter includes a runtime environment with garbage collection, Just-In-Time (JIT) compilation, etc. As such, Java workloads potentially have different execution characteristics from traditional C or Fortran workloads. In this paper, we make a thorough comparison between SPEC CPU and Java workloads using statistical data analysis techniques and performance counters on an AMD Duron platform. In our experimental setup we use four virtual machines for the Java workloads running SPECjvm98, SPECjbb2000 and Java Grande. Our main conclusion is that Java workloads are significantly different from SPEC CPU and that the execution characteristics for which Java workloads differ from SPEC CPU, is subjective to the virtual machine; we can make a distinction between mixed-mode and compilation-only virtual machines.


Virtual Machine Linkage Distance Benchmark Suite Java Virtual Machine Java Application 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Chow, K., Wright, A., Lai, K.: Characterization of Java workloads by principal components analysis and indirect branches. In: Proceedings of the Workshop on Workload Characterization (WWC-1998), held in conjunction with the 31st Annual ACM/IEEE International Symposium on Microarchitecture (MICRO-31), November 1998, pp. 11–19 (1998)Google Scholar
  2. 2.
    Desikan, R., Burger, D., Keckler, S.W.: Measuring experimental error in microprocessor simulation. In: Proceedings of the 28th Annual International Symposium on Computer Architecture (ISCA-28), July 2001, pp. 266–277 (2001)Google Scholar
  3. 3.
    Diefendorff, K.: K7 challenges Intel. Microprocessor Report, 12(14) (October 1998)Google Scholar
  4. 4.
    Eeckhout, L., Georges, A., De Bosschere, K.: How Java programs interact with virtual machines at the microarchitectural level. In: Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA) 2003, October 2003, pp. 169–186 (2003)Google Scholar
  5. 5.
    Eeckhout, L., Vandierendonck, H., De Bosschere, K.: Designing computer architecture research workloads. IEEE Computer 36(2), 65–71 (2003)Google Scholar
  6. 6.
    Eeckhout, L., Vandierendonck, H., De Bosschere, K.: Quantifying the impact of input data sets on program behavior and its applications. Journal of Instruction-Level Parallelism 5, 1–33 (2003)Google Scholar
  7. 7.
    Hsieh, C.A., Conte, M.T., Johnson, T.L., Gyllenhaal, J.C., Hwu, W.W.: A study of the cache and branch performance issues with running Java on current hardware platforms. In: Proceedings of the 42nd IEEE International Computer Conference (COMPCON 1997), February, pp. 211–216 (1997)Google Scholar
  8. 8.
    Johnson, R.A., Wichern, D.W.: Applied Multivariate Statistical Analysis, 5th edn. Prentice Hall, Englewood Cliffs (2002)Google Scholar
  9. 9.
    Li, T., Bhargava, R., John, L.: Rehashable btb: an adaptive branch target buffer to improve the target predictability of java code. In: Proceedings of the International Conference on High Performance Computing (HiPC), pp. 597–608 (2002)Google Scholar
  10. 10.
    Li, T., Hu, S., Luo, Y., John, L., Vijaykrishnan, N.: Understanding control flow transfer and its predictability in Java processing. In: Proceedings of the IEEE International Symposium on Performance Analysis of Systems and Software, pp. 65–76 (2001)Google Scholar
  11. 11.
    Li, T., John, L.K., Narayanan, V., Sivasubramaniam, A., Sabarinathan, J., Murthy, A.: Using complete system simulation to characterize SPECjvm98 benchmarks. In: Proceedings of the 14th International Conference on Supercomputing (ICS-2000), May 2000, pp. 22–33 (2000)Google Scholar
  12. 12.
    Phansalkar, A., Joshi, A., Eeckhout, L., John, L.: Measuring program similarity: Experiments with spec cpu benchmark suites. In: Proceedings of the 2005 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS 2005), pp. 10–20. IEEE, Los Alamitos (2005)CrossRefGoogle Scholar
  13. 13.
    Radhakrishnan, R., Vijaykrishnan, N., John, L.K., Sivasubramaniam, A., Rubio, J., Sabarinathan, J.: Java runtime systems: Characterization and architectural implications. IEEE Transactions on Computers 50(2), 131–145 (2001)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Andy Georges
    • 1
  • Lieven Eeckhout
    • 1
  • Koen De Bosschere
    • 1
  1. 1.Department of Electronics and Information Systems (ELIS)Ghent UniversityGentBelgium

Personalised recommendations