"Slimming" a Java virtual machine by way of cold code removal and optimistic partial program loading
"Slimming" a Java virtual machine by way of cold code removal and optimistic partial program loading
复制标题
通过冷代码去除和乐观部分程序加载的方式“瘦身”Java虚拟机
DOI:
10.1016/j.scico.2010.04.008
复制
发表时间:
2011
期刊:
影响因子:
--
通讯作者:
M. Franz
中科院分区:
文献类型:
--
作者:
Gregor Wagner;A. Gal;M. Franz
Embedded systems provide limited storage capacity. This limitation conflicts with the demands of modern virtual machine platforms, which require large amounts of library code to be present on each client device. These conflicting requirements are often resolved by providing specialized embedded versions of the standard libraries, but even these stripped down libraries consume significant resources. We present a solution for “always connected” mobile devices based on a zero footprint client paradigm. In our approach, all code resides on a remote server. Only those parts of applications and libraries that are likely to be needed are transferred to the mobile client device. Since it is difficult to predict statically which library parts will be needed at run time, we combine static analysis, opportunistic off-target linking and lazy code loading to transfer code with a high likelihood of execution ahead of time while the other code, such as exception code, remains on the server and is transferred only on demand. This allows us to perform not only dead code elimination, but also aggressive elimination of unused code. The granularity of our approach is flexible from class files all the way down to individual basic blocks. Our method achieves total code size reductions of up to 95%.