图1. BEA WebLogic JRockit有两条代码编译途径。
WebLogic JRockit使用尖端的、低开销的、基于采样的技术来识别应该优化的函数。JVM包含一个采样器线程,该线程以周期性间隔唤醒,并检查几个应用程序线程的状态。它会识别每个线程正在执行什么方法,并记录某些执行历史纪录。采样器线程为所有方法跟踪此信息,当它发现频繁使用某一方法时,就会打上标记以便进行优化。在应用程序运行期间,较早的阶段会有大量这种优化机会,随着应用程序的继续执行,优化机会出现的速率不断下降。
由于方法的大小通常很小,而范围对代码调度程序非常重要,因此内嵌方法的优化是最重要的。调用方法的代码直接在调用点插入。在Java中,这可能很难完成,原因有很多,如在执行期间开始前,接口调用、远程调用和虚拟调用中被调用函数的标识未知。WebLogic JRockit拥有现成的技术,能够解决一部分问题。如果完成情况很差,则内嵌方法可能会导致代码膨胀,进而造成性能急剧下降。WebLogic JRockit包含精心调试过的启发式,可以防止这种性能下降。
|
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容 本站提醒:不要进行人身攻击。谢谢配合。 |