Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java评测:检测哪段代码导致高CPU负载_Java_Profiling_Cpu_Profiler_Cpu Usage - Fatal编程技术网

Java评测:检测哪段代码导致高CPU负载

Java评测:检测哪段代码导致高CPU负载,java,profiling,cpu,profiler,cpu-usage,Java,Profiling,Cpu,Profiler,Cpu Usage,我用JProfiler和YourKit分析了我的代码。然而,我还没有弄清楚如何检测哪段代码是造成高CPU负载的原因 如果响应时间不好,检测热点是很简单的。在我的情况下,响应时间不是问题。只是在处理这个特定请求的短时间内,CPU负载非常高(惊人地高) 我如何确定哪些类/方法导致了这种情况?我想我要找的是一个列表,它告诉我一个方法的处理需要多少CPU周期,大约如此。CPU负载本质上是指CPU有事情要做的CPU周期数,而不仅仅是摆弄虚拟拇指 因此,如果您的请求实际执行了实际工作(而不是等待磁盘I/O)

我用JProfiler和YourKit分析了我的代码。然而,我还没有弄清楚如何检测哪段代码是造成高CPU负载的原因

如果响应时间不好,检测热点是很简单的。在我的情况下,响应时间不是问题。只是在处理这个特定请求的短时间内,CPU负载非常高(惊人地高)


我如何确定哪些类/方法导致了这种情况?我想我要找的是一个列表,它告诉我一个方法的处理需要多少CPU周期,大约如此。

CPU负载本质上是指CPU有事情要做的CPU周期数,而不仅仅是摆弄虚拟拇指

因此,如果您的请求实际执行了实际工作(而不是等待磁盘I/O),那么在完成工作时,负载会很高,因为cpu有一些事情要做

您需要寻找的是,当响应时间开始攀升时,cpu周期将耗尽


如果您的问题是请求太短,分析器无法向您显示需要查看的内容,那么请考虑使用自动化工具请求它处理成百上千个请求。这应该会有帮助。

在处理过程中,它是100%。当它等待时(例如等待I/O),它处于0%。这两者之间没有任何区别。 当进程占用少于100%时,这是过去N毫秒内的滚动平均值

如果有一种方法可以提高效率,那么它所需的时间将更少,而不是更少的百分比(必然)


如果您想找到一种减少时间的方法,请为它提供足够的工作负载,并且。

方法热点将是我要查找的地方。你有什么理由不相信这个结果吗?当一个请求被执行时,你不希望CPU是100%(或者至少是一个完整的内核)吗?是的,当然你是对的。测量CPU周期数和测量执行时间直接相关为[执行时间=(周期数*每个周期的时间)+I/O等待等]。“而不仅仅是旋转虚拟拇指”:)+1