Refine
H-BRS Bibliography
- no (2)
Document Type
- Master's Thesis (2)
Language
- English (2)
Has Fulltext
- no (2)
This thesis presents an approach to automatically adjust the parameters of a Java application run on the IBM J9 Virtual Machine in order to improve its performance. It works by analyzing the logfile the VM generates and searching for specific behavioral patterns. These patterns are matched against a list of known patterns for which rules exist that specify how to adapt the VM to the given application. Adapting the application is done by adding parameters and changing existing ones, for example to achieve a better heap usage. The process is fully automated and carried out by a toolkit developed for this thesis. The toolkit iteratively cycles through multiple possible parameter sets, benchmarks them and proposes the best alternative to the user. The user can, without any prior knowledge about the Java application or the VM improve the performance of the deployed application.
An analysis of sharing string objects with the Java Virtual Machine was conducted; they are the most used objects in Java programs and they are immutable - thus they are read-only and easily identified. While the results are promising, it is clear that sharing more objects would result in better performance. Automatic object selection for sharing is non-trivial, because in the current state only read-only objects can be shared. This attribute can not be easily determined during runtime by an algorithm; the developer on the other hand can. This thesis presents the development of an Application Programmer Interface (API) that allows programmers to use the Java Virtual Machine (JVM) internal sharing functionality. Furthermore, we present the usage of the sharing API. Open-source software was used as real-world test cases. Afterwards the evaluation shows that the ratio between memory savings and start-up time overhead is reasonable.