Font Size: a A A

Redundant Array Bounds Checking And Object Inlining Optimization

Posted on:2011-01-14Degree:MasterType:Thesis
Country:ChinaCandidate:Z HuangFull Text:PDF
GTID:2208360305497391Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
Java is a widely used program language. It is famous for its good across-platform and excellent safety, but the performance of Java program is relatively poor. In this paper, we try to describe our work of performance tuning in two ways. In the one hand, Java is an exception safety language. As a type-safe program language, Java requires bounds checks of array accesses. These checks slow down the speed of Java programs. The Algorithm ABCE builds an inequality graph which contains conditions of index expressions and removes the redundant array bounds checks according to the conditions in the inequality graph. On the other hand, Java is an object-oriented language. And the related data of object-oriented language program is allocated to discontiguous memory. So the cache locality gets bad and the dereference operation increase. The result is that the program performance gets worse. Our object inlining optimization changes this situation. it analyses the object data, and allocates the related-object to continuous free space and reduces the number of dereference..Our redundant array bounds check elimination and object inlining optimization are implemented on the Java static compiler opencj, which is based on the excellent open source compiler platform open64. On the scientific SciMark2.0 benchmark test suite, ABCE removes on average 76% of bounds checks, sometimes achieves near-ideal optimization. The evaluation shows a speedup near to the theoretical maximum for LU test case. And the experiments of object inlining optimization also show that it can improve the performance of the object-oriented language Java effectively.
Keywords/Search Tags:Java, static compiler, array bounds check elimination, object inlining, optimization, performance
PDF Full Text Request
Related items