gpt4 book ai didi

scala - 为什么 SIGAR 随机返回 NaN 或零

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

试图运行 SIGAR快速获得许多硬件指标样本,我看到了这种行为:

val sig: Sigar = new Sigar()
val steady_cpu: Double = (for (i <- 1 to 100) yield sig.getCpuPerc().getUser()).sum / 100.0

其中 stable_cpu 结果为 NaN。查看生成的列表,NaN 来自返回 NaN 的 getUser() 调用

最佳答案

一般问题似乎是 SIGAR 调用可能是有状态的,并且过快地调用函数不会给 SIGAR 时间来重建其内部状态。我猜他们正在计算 CPU 周期或类似的东西,这通常是一门近似科学,如果你太快地调用函数,内部库最终会被零除。解决方法是在通话之间添加一个短暂的 sleep :

val sig: Sigar = new Sigar()
val steady_cpu: Double = (for (i <- 1 to 100) yield {
Thread.sleep(10);
sig.getCpuPerc().getUser()
}).sum / 100.0

关于scala - 为什么 SIGAR 随机返回 NaN 或零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14795798/

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