使用NetBeans探查器分析ICU4J代码

Eclipse提供了名为TPTP的可选包,其中包括Java探查器。在过去,我设置了TPTP并分析了ICU4J代码。不幸的是,我遇到了各种问题,例如崩溃、操作缓慢和可疑的配置文件结果。我在每个新的eclipse版本中都尝试了TPTP,但我运气不佳。这些天,我正在使用NetBeans附带的探查器,而不是TPTP。NetBeans探查器易于使用、可靠且比TPTP更快。我认为该工具对其他ICU4J开发人员也很有用,所以我将在本文中解释如何使用NetBeans分析器。

NetBeans安装

只需转到 NetBeans站点为您的平台下载安装程序。有几个包选项可用。对于大多数开发ICU4J的人来说,只需要“JavaSE”包。

要使用NetBeans Profiler,还需要Oracle JRE。如果没有,请从Oracle站点下载JRE(或JDK)5或更高版本。

将NetBeans Profiler连接到Java程序

通过以下步骤,您可以轻松地将NetBeans Profiler附加到Java程序,而无需在NetBeans IDE上创建项目。

    1. 启动NetBeans IDE

    2. 第一次,您需要将分析器校准为JRE。这可以通过以下步骤完成。

      1. 选择[工具-Java平台]打开Java Platform Manager。

      2. 单击添加平台。。。选择要用于分析的JRE的平台文件夹。按照说明注册JRE。

      3. 从IDE菜单中选择[配置文件-高级命令-运行档案器校准]。该对话框应列出您在上一步中注册的JRE。选择它并单击“确定”。

    3. 选择[Profile-Attach Profiler]。选择左侧的CPU,然后单击“附加”按钮上方的“更改…”。

    1. 在“附加向导”窗口中,只需单击“下一步”,直到出现第三个屏幕。然后选择JRE的版本,并按照屏幕中的说明复制java命令参数。

    1. 单击finish,现在可以将NetBeans Profiler附加到Java代码。

    2. 使用步骤4中保存的java命令参数启动java程序。例如,

    3. java-agentpath:“C:\NetBeans 6.9.1\profiler\lib\deployed\jdk16\windows-amd64\profilerinterface.dll=\”C:\NetBeans 6.9.1\ profiler\lib\“”,5140 TestJavaClass

    4. java代码执行应该处于暂停状态,并等待NetBeans Profiler附加。在NetBeans IDE上选择[Profile-Attach Profiler],然后单击“Attach”。运行代码并收集分析结果需要一段时间,然后应该会弹出下一个对话框。单击“是”查看分析结果。

在Eclipse IDE上使用NetBeans Profiler

您可以从Eclipse IDE启动的Java程序中使用NetBeans Profiler。这可能是ICU4J开发人员的典型用例。以下步骤解释了如何评测DateFormatTest/TestCoverage

    1. 在Eclipse IDE上的icu4j-core-tests项目中打开DateFormatTest.java。

    2. 输入Ctrl+F11(或单击Run图标或选择[Run-Run])以运行测试一次。此操作将创建DateFormatTest的运行配置。

    3. 从菜单中选择[Run-Run Configurations]。

    4. 在Arguments选项卡中,指定所需的测试方法(在本例中为TestCoverage)作为Program参数。然后将从NetBeans Profiler附加向导复制的java命令参数指定为VM参数,如下所示-

    1. 打开JRE选项卡,确保配置为评测的JRE被指定为Runtime JRE。然后单击Run运行测试目标。

    2. 在Eclipse的Console窗口中,应该显示一条消息,指示Java应用程序正在等待连接—例如,“Profiler Agent:waiting for connection on port 5140(Protocol version:10)”。

    3. 在NetBeans IDE上选择[Profile-Attach Profiler],然后单击“Attach”。使用现代多核Intel系统完成此案例的分析至少需要1分钟。

注:本文件写于2010年1月17日。本文档中的屏幕截图是使用NetBeans IDE 6.9.1/Eclispe 3.6.1拍摄的。