Speculative optimizations for interpreting environments
Article first published online: 29 APR 2013
Copyright © 2013 John Wiley & Sons, Ltd.
Software: Practice and Experience
Volume 44, Issue 10, pages 1223–1249, October 2014
How to Cite
2014), Speculative optimizations for interpreting environments, Softw. Pract. Exper., 44, pages 1223–1249, doi: 10.1002/spe.2199and (
- Issue published online: 6 SEP 2014
- Article first published online: 29 APR 2013
- Manuscript Revised: 11 MAR 2013
- Manuscript Accepted: 11 MAR 2013
- Manuscript Received: 2 JUL 2012
- optimistic code generation;
- speculative optimization
Most constrained systems use interpreters to run mobile programs written in Java. Such interpreters are designed to minimize resource usage and often do not allow mobile code in the devices to be changed. For this reason, runtime optimization is typically not supported, even though it is completely feasible. In this paper, we propose optimistic optimization as a concept for improving application performance in restricted interpreter environments. In an optimistic optimization, a mobile program is restructured speculatively during code generation. This requires that it is possible to undo such optimizations, at runtime, if an incorrect use is detected or the set of available classes has changed when compared with compile time. Experimental results show that interpreted applications using optimistic optimizations tend to run faster when compared with their conventionally optimized counterparts. Compared with standard load elimination, reductions in runtimes of up to 9% for optimistic load elimination and up to 23% for the combined optimization were achieved. Whereas an average performance improvement of 1.87% for optimistic load elimination and 3.7% for the combined optimization could be realized. Copyright © 2013 John Wiley & Sons, Ltd.