快速业务通道

用Runtime Spy调整Eclipse的启动性能,第1部分 - 开始 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
码,让您充分认识到执行它的代价。这个故事的寓意 通常是“启动时做的太多了”。

用Runtime Spy调整Eclipse的启动性能,第1部分 - 开始(3)

时间:2010-12-02 IBM Dan Kehn

追踪一个类为什么被加载

要更清楚地了解是什么导致了一个插件的激活或者一个类的加载,首先您必 须为引起您关注的类所在的插件或者包启用追踪选项。在这个例子中,我创建了 一个 traces.properties 文件,其中一行为 packages=org.eclipse.jface.text 。然后您需要:

在 Activated Plugins 列表中选择 org.eclipse.jface.text 插件。

按下 按钮以更新 Loaded Classes 列表。

选择 org.eclipse.jface.text.ITextViewer 类。

选择 按钮来更新 Stack Trace 视图。

这将显示出哪些代码让类加载器加载了那个类(如果在这之前它还没有被加 载)并激活了选中的插件,如图 5 所示。

图 5. Runtime Spy 中显示的 Stack Trace 视图

栈顶通常不值得关注,因为那追踪的是类加载器代码本身。有用的信息在中 下部。在这个例子中,栈记录显示,是由于 Runtime Spy 透视图的打开而最终 导致了 ITextViewer 类的加载,如高亮的栈记录行底部所示。透视图打开的初 始化视图中包括 Plugin Datasheet 视图,这个视图将用 JFace Text 类 TextViewer 来显示它的数据。在 defineClass 期间核实那个类时,JVM 发现还 需要 ITextViewer ,因为 TextViewer 实现的是这一接口。如您可以看到的, JVM 运行期的类加载可以嵌套得相当深;出于性能目的您通常应该关注那些引起 类加载器调用的代码,像图 5 中显示的栈记录的高亮部分。

用Runtime Spy调整Eclipse的启动性能,第1部分 - 开始(4)

时间:2010-12-02 IBM Dan Kehn

追踪插件为什么被加载

上一个例子说明了一个特定类为什么会被加载。您还可以查看一个给定的插 件为什么被加载,但是插件的激活原因看起来不是那么明显,因为起因是间接的 。一般情况下,类是由于被另一个类的方法引用而被加载(并且您还可以参考相 应的 import 语句),与之不同,插件的加载是一些间接引用的结果。不要忘记 ,我们的目的是,不到插件被用到的时候尽量不去加载它,所以对插件本身的引 用这样实现:

显示地声明标识,比如插件清单中的 <import plugin="org.eclipse.ui"> ,或者

隐式地标识,比如为那个插件导出包到运行期 JAR 中。

这两个例子都在“Hello, Eclipse”插件清单节选中突出显示了,见清单 1 。

清单 1. “Hello, Eclipse”的扩展点样例

<?xml version="1.0" encoding="UTF-8"?> <plugin ...>       ... lines omitted ...    <runtime>       <library name="hello.jar"/>       <export name="*"/>     </library>    </runtime>    <requires>     <import plugin="org.eclipse.core.resources"/>       <import plugin="org.eclipse.ui"/>    </requires>       ... lines omitted ...    <extension point="org.eclipse.ui.actionSets">     <actionSet       label="Sample Action Set"       visible="true"       id="hello.actionSet">       <menu        label="Sample &Menu"        id="sampleMenu">        <separator          name="sampleGroup">        </separator>

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号