Java应用程序的CPU使用是否与处理器相关

Java应用程序的CPU使用是否与处理器相关,java,performance,cpu-usage,Java,Performance,Cpu Usage,处理器的数量如何与CPU使用率的计算相关。我从各个链接中提到了有关CPU使用率计算的内容,其中表示进程CPUtime/executiontime。如果是双核处理器,它像 cpu usage = (process cpu time)/(execution time)*(no. of processors) 或 ? 我喜欢把事情简单化。在Java中,您可以获得每个线程的cpu使用率和cpu总使用率 总cpu时间=线程1 cpu时间+线程2 cpu时间+…+线程N cpu时间 我不认为使用*no o

处理器的数量如何与CPU使用率的计算相关。我从各个链接中提到了有关CPU使用率计算的内容,其中表示进程CPU
time/execution
time。如果是双核处理器,它像

cpu usage = (process cpu time)/(execution time)*(no. of processors)


?

我喜欢把事情简单化。在Java中,您可以获得每个线程的cpu使用率和cpu总使用率

总cpu时间=线程1 cpu时间+线程2 cpu时间+…+线程N cpu时间

我不认为使用
*no of processors
是非常有用的,因为您很少希望所有线程都能完成相同的工作量

CPU使用率百分比为

cpu使用率百分比=100*总cpu时间/消耗时间


这意味着,如果您看到您的百分比使用率在100%左右,您将使用大约一个CPU线程。这可能意味着您的应用程序实际上是单线程的,您需要改进多线程的工作方式,即需要更多线程或修复当前线程的行为方式。如果您的CPU使用率远远低于100%,那么您可能不需要多个线程,并且希望线程更少。

什么是“处理CPU时间”--由什么报告?如果您在linux机器中,并说如果您执行代码
sh foo.sh
,添加时间
time sh foo.sh
将报告以下内容:
real
-这是挂钟时间
user
-这是cpu时间。它大约等于进程的实时*#。
cpu usage = (process cpu time)/(execution time)