Dynamic code reordering method for improvement of Java performance

Tetsuyasu Yamada, Shinji Tanaka, Satoshi Shiraishi, Keiichi Koyanagi

Research output: Contribution to journalArticle

Abstract

When the Java language is used in a large-scale real-time communications system, processing power presents a problem. The authors have been investigating an essential solution for this problem. This paper proposes a technique in which native code which has already been on-line compiled by a JIT compiler is dynamically reordered, based on profiling data obtained in the Java execution environment. The realization procedure is clearly described. The technique is to place segments of compiled code with high execution frequency close to each other as a group in memory. In addition, codes with low execution frequency are allocated to another area, so that the codes with high frequencies are more compactly placed. By this measure, the instruction cache hit rate of the processor is greatly increased and the processing performance in a large-scale program can be improved. The extent of performance improvement by applying the dynamic code reordering technique is evaluated, using applications with characteristics close to those of the real large-scale real-time communications program, and the effectiveness of the proposed method is demonstrated.

Original languageEnglish
Pages (from-to)78-88
Number of pages11
JournalElectronics and Communications in Japan, Part I: Communications (English translation of Denshi Tsushin Gakkai Ronbunshi)
Volume89
Issue number11
DOIs
Publication statusPublished - 2006 Nov

Fingerprint

Processing
Communication systems
Data storage equipment
Communication

Keywords

  • Instruction cache
  • Java
  • JIT
  • Performance

ASJC Scopus subject areas

  • Electrical and Electronic Engineering
  • Computer Networks and Communications

Cite this

Dynamic code reordering method for improvement of Java performance. / Yamada, Tetsuyasu; Tanaka, Shinji; Shiraishi, Satoshi; Koyanagi, Keiichi.

In: Electronics and Communications in Japan, Part I: Communications (English translation of Denshi Tsushin Gakkai Ronbunshi), Vol. 89, No. 11, 11.2006, p. 78-88.

Research output: Contribution to journalArticle

@article{247e2280d98044f3864d3d74c5f2185e,
title = "Dynamic code reordering method for improvement of Java performance",
abstract = "When the Java language is used in a large-scale real-time communications system, processing power presents a problem. The authors have been investigating an essential solution for this problem. This paper proposes a technique in which native code which has already been on-line compiled by a JIT compiler is dynamically reordered, based on profiling data obtained in the Java execution environment. The realization procedure is clearly described. The technique is to place segments of compiled code with high execution frequency close to each other as a group in memory. In addition, codes with low execution frequency are allocated to another area, so that the codes with high frequencies are more compactly placed. By this measure, the instruction cache hit rate of the processor is greatly increased and the processing performance in a large-scale program can be improved. The extent of performance improvement by applying the dynamic code reordering technique is evaluated, using applications with characteristics close to those of the real large-scale real-time communications program, and the effectiveness of the proposed method is demonstrated.",
keywords = "Instruction cache, Java, JIT, Performance",
author = "Tetsuyasu Yamada and Shinji Tanaka and Satoshi Shiraishi and Keiichi Koyanagi",
year = "2006",
month = "11",
doi = "10.1002/ecja.20185",
language = "English",
volume = "89",
pages = "78--88",
journal = "Electronics and Communications in Japan, Part I: Communications (English translation of Denshi Tsushin Gakkai Ronbunshi)",
issn = "8756-6621",
publisher = "John Wiley and Sons Inc.",
number = "11",

}

TY - JOUR

T1 - Dynamic code reordering method for improvement of Java performance

AU - Yamada, Tetsuyasu

AU - Tanaka, Shinji

AU - Shiraishi, Satoshi

AU - Koyanagi, Keiichi

PY - 2006/11

Y1 - 2006/11

N2 - When the Java language is used in a large-scale real-time communications system, processing power presents a problem. The authors have been investigating an essential solution for this problem. This paper proposes a technique in which native code which has already been on-line compiled by a JIT compiler is dynamically reordered, based on profiling data obtained in the Java execution environment. The realization procedure is clearly described. The technique is to place segments of compiled code with high execution frequency close to each other as a group in memory. In addition, codes with low execution frequency are allocated to another area, so that the codes with high frequencies are more compactly placed. By this measure, the instruction cache hit rate of the processor is greatly increased and the processing performance in a large-scale program can be improved. The extent of performance improvement by applying the dynamic code reordering technique is evaluated, using applications with characteristics close to those of the real large-scale real-time communications program, and the effectiveness of the proposed method is demonstrated.

AB - When the Java language is used in a large-scale real-time communications system, processing power presents a problem. The authors have been investigating an essential solution for this problem. This paper proposes a technique in which native code which has already been on-line compiled by a JIT compiler is dynamically reordered, based on profiling data obtained in the Java execution environment. The realization procedure is clearly described. The technique is to place segments of compiled code with high execution frequency close to each other as a group in memory. In addition, codes with low execution frequency are allocated to another area, so that the codes with high frequencies are more compactly placed. By this measure, the instruction cache hit rate of the processor is greatly increased and the processing performance in a large-scale program can be improved. The extent of performance improvement by applying the dynamic code reordering technique is evaluated, using applications with characteristics close to those of the real large-scale real-time communications program, and the effectiveness of the proposed method is demonstrated.

KW - Instruction cache

KW - Java

KW - JIT

KW - Performance

UR - http://www.scopus.com/inward/record.url?scp=33745439943&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=33745439943&partnerID=8YFLogxK

U2 - 10.1002/ecja.20185

DO - 10.1002/ecja.20185

M3 - Article

VL - 89

SP - 78

EP - 88

JO - Electronics and Communications in Japan, Part I: Communications (English translation of Denshi Tsushin Gakkai Ronbunshi)

JF - Electronics and Communications in Japan, Part I: Communications (English translation of Denshi Tsushin Gakkai Ronbunshi)

SN - 8756-6621

IS - 11

ER -