【发布时间】:2015-10-28 08:44:45
【问题描述】:
我想测量 Java 应用程序中的 CPU 使用率,例如
System.out.println("...")
HelloWorld 应用程序。任何的想法?我不想测量整个应用程序的 CPU 使用率,只测量应用程序内的方法。
有没有办法将应用程序的总执行时间与整个应用程序的 CPU 使用率关联起来?
【问题讨论】:
-
这个问题有点迟钝,因为一次执行的方法可能不止一个。我使用的分析方法是针对整个应用程序的使用而设计的。您可以看到评估一个方法需要多少时间,这可能与 CPU 使用率相关。
-
好的。一旦我测量了执行该方法的时间(例如
System.out.println("...")),我如何将测量的时间与 CPU 使用率相关联? -
您能否更新您的问题,说明您为什么要这样做?即使您在执行单个方法时可以看到 CPU 峰值可能是多少,但这不一定是对整个应用程序进行负载测试的有用数据点。
-
问题已更新。顺便说一句,有没有办法将应用程序的总执行时间与整个应用程序的 CPU 使用率关联起来?
-
您以完全错误的方式进行分析。测量应用程序的小“随机”部分是没有用的。您衡量整个应用程序的性能,这可能会为您提供“热点”,即需要最多资源的地方。为了提高性能,您将专注于热点。其他一切都只是噪音。比起衡量
System.out.println(),你可以更好地把时间投入到其他事情上。
标签: java performance profiling