【问题标题】:Separating Yourkit sessions分离 Yourkit 会话
【发布时间】:2014-03-25 20:06:52
【问题描述】:

我有一段代码我想在许多不同的输入 (~1000) 上进行分析,因此手动运行每个测试并保存结果是没有意义的。我将 yourkit 与 Eclipse 结合使用来进行分析。有没有办法为分析创建“新会话”?我希望能够将每次运行分开,这样最有意义。

【问题讨论】:

    标签: java eclipse profiling yourkit


    【解决方案1】:

    您实际上并不需要为每个测试创建“会话”。相反,您必须在每次测试结束时捕获分析数据的快照,并在运行下一个测试之前清除分析数据。

    使用yourkit API,您可以通过以下方式执行此操作:

    public void profile(String host, int port, List<InputData> inputDataSet) {
      Map<InputData, String> pathMap = new HashMap<InputData, String>(); //If you want to save the location of each file
    
      //Init profiling data collection
      com.yourkit.api.Controller controller = new Controller(host, port);
      controller.startCPUSampling(/*with your settings*/);
      controller.startAllocationRecording(/*With your settings*/);
      //controller.startXXX with whatever data you want to collect
    
      for (InputData input: inputDataSet) {
        //Run your test
        runTest(inputData);
    
        //Save profiling data
        String path = controller.captureSnapshot(/*With or without memory dump*/);
        pathMap.put(input, path);
    
        //Clear yourkit profiling data
        controller.clearAllocationData();
        controller.clearCPUData();
        //controller.clearXXX with whatever data you are collecting
      }
    }
    

    我认为您不需要停止采集、捕获快照、清除数据、重新开始采集,您可以捕获并清除数据,但请仔细检查。 运行测试后,您可以在您的工具包中打开快照并分析分析数据。

    【讨论】:

      【解决方案2】:

      不幸的是,目前尚不清楚如何运行您的测试。每个测试是在自己的 JVM 进程中运行,还是在单个 JVM 中循环运行所有测试?

      如果您在自己的 JVM 中运行每个测试,那么您需要 1) 使用分析器代理运行 JVM,即使用 -agentpath 选项(详细信息在此处http://www.yourkit.com/docs/java/help/agent.jsp)。 2) 指定您在 JVM 启动时分析的内容(代理选项“采样”、“跟踪”等) 3) 在 JVM 退出时捕获快照文件(“onexit”代理选项)。

      选项的完整列表http://www.yourkit.com/docs/java/help/startup_options.jsp

      如果您在单个 JVM 中运行所有测试,您可以使用分析器 API http://www.yourkit.com/docs/java/help/api.jsp 在测试开始前开始分析并在测试完成后捕获快照。您需要使用 com.yourkit.api.Controller 类。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-29
        • 1970-01-01
        • 2023-03-19
        • 1970-01-01
        相关资源
        最近更新 更多