Mostly accurate stack scanning

  • Authors:
  • Katherine Barabash;Niv Buchbinder;Tamar Domani;Elliot K. Kolodner;Yoav Ossia;Shlomit S. Pinter;Janice Shepherd;Ron Sivan;Victor Umansky

  • Affiliations:
  • IBM Haifa Research Laboratory;IBM Haifa Research Laboratory;IBM Haifa Research Laboratory;IBM Haifa Research Laboratory;IBM Haifa Research Laboratory;IBM Haifa Research Laboratory;IBM T.J. Watson Research Laboratory;IBM Haifa Research Laboratory;IBM Haifa Research Laboratory

  • Venue:
  • JVM'01 Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

The Java Virtual Machine (Jvm) needs, for the purpose of garbage collection (GC), to determine the data type stored in every memory location. Jvms that can do this reliably are said to be type-accurate (TA). Full type-accuracy usually exacts a price in performance due to the need to scan stacks and registers accurately. The mostly accurate approach presented here can reduce the TA overhead significantly by sacrificing accuracy for the small minority of memory locations that add the most to the cost. Performance results show that mostly accurate stack scanning performs as well as conservative stack scanning and that relatively few objects are identified conservatively. In addition our implementation is designed to support and generate type maps for any verifiable bytecode stream (including combinations that are unlikely to be produced by a compiler) without requiring rewriting of the bytecode. We introduce a new compression technique for type maps that uses a program-friendly format for the maps; yet, achieves good compression and provides fast opening of compressed maps. We show how to apply systematic testing techniques and test coverage tools to an accurate stack scanner.