gpt4 book ai didi

java - Thread.sleep()的CPU消耗

转载 作者:行者123 更新时间:2023-12-01 07:25:25 25 4
gpt4 key购买 nike

在“Sampler”选项卡/CPU 的“CPU Samples”子选项卡下观察,我发现最消耗的方法是 java.lang.Thread.sleepnative。

我有大约 30 个具有相关 sleep() 调用的线程。但这有什么意义呢?

我报告的平均 CPU 消耗是 7%,Thread.sleep() 真的使用了 70% 的时间吗?

怎么可能,是“真实”的消费吗?

最佳答案

通常,采样器只会在每个给定时间检查您的程序正在执行的操作,并报告您的程序在给定方法中运行了多少次(并通过简单的乘法给出了大约多少时间)。

这通常与实际 CPU 负载无关。

例如, sleep() 调用会暂停线程,因此您的代码几乎根本不加载 CPU,但是,如果我有一个程序只启动、 hibernate 10 分钟然后结束,采样它会告诉我 Thread.sleep 消耗了 100% 的 cpu 时间。

这同样适用于 IO 操作,其中您的线程正在等待数据从某个地方(可能是远程互联网主机,或者只是您的磁盘)到达,并且不会显着加载 CPU,但采样器仍然会(正确地)告诉你大部分时间都花在了 IO 方法上,即使 CPU 本身并没有做那么多。

关于java - Thread.sleep()的CPU消耗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25749512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com