gpt4 book ai didi

java - 什么会导致 java 进程逐渐减少 CPU 份额?

转载 作者:太空狗 更新时间:2023-10-29 11:19:50 25 4
gpt4 key购买 nike

我有一个非常简单的 java 程序,可以打印出 100 万个随机数。在 linux 中,我观察了这个程序在其生命周期中占用的 %CPU,它从 98% 开始,然后逐渐减少到 2%,从而导致程序非常慢。哪些因素可能会导致程序逐渐获得更少的 CPU 时间?

我已经尝试使用 nice -20 运行它,但我仍然看到相同的结果。

编辑:使用 /usr/bin/time -v 运行程序我看到异常数量的非自愿上下文切换(588 次自愿 vs 16478 次非自愿),这表明操作系统正在让一些其他更高优先级的进程运行。

最佳答案

归结为两件事:

  • I/O 很昂贵,并且
  • 根据您存储数字的方式,这也会对性能产生不利影响。

如果您主要在一个循环中执行 System.out.println(randInt) 一百万次,那么这会变得很昂贵。 I/O 不是免费提供的东西之一,写入任何输出流都会消耗资源。

关于java - 什么会导致 java 进程逐渐减少 CPU 份额?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13850510/

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