【发布时间】:2011-11-17 23:18:17
【问题描述】:
我在确定我的软件出了什么问题时遇到了麻烦。 情况是; - 程序始终在后台运行,每 X 分钟执行一些操作。 - 现在它设置为每 1 分钟检查一次某个目录并查看其中是否有新文件。 - 如果有新文件,它们会被处理并移动到其他地方。 - 如果没有,它只会记录事件并再次空闲。
我假设当新文件出现时,CPU 使用率可能会有些高。 问题来了,即使我很多天没有在目录中放入新文件,CPU 使用率也会提高到每分钟检查新条目的 90%,然后在几秒钟后,返回到
windows 下的相同进程似乎有点稳定,始终保持低 cpu 使用率。
如果我每月监控 CPU 活动,我可以看到我的 java 进程的平均 CPU 使用率不断增长(没有放置新文件来“激活”进程的其余部分),我必须重新启动进程它会返回到较低的 CPU 使用率水平。
我真的不了解这种行为,所以我真的不知道可能会影响到什么。
如果日志文件有点“大”,比如 10-20mb,每分钟记录一个新条目是否需要那么多 CPU?
如果此进程的类路径中加载了许多库,即使这些库中的许多库不会一直使用最多,cpu 使用率是否也会增加?
如果我对我的问题不是很清楚,请原谅,我对此有点陌生。
提前谢谢大家,问候。
--编辑-- 我注意到你的建议,我会做一些监控,我会发布一些代码/结果与你分享,看看你能想出什么!
我现在真的迷路了!
【问题讨论】:
-
您可能需要显示扫描目录并附加到日志文件的代码。您所描述的内容中没有任何内容会导致这种行为。
-
在高 cpu 期间执行线程转储。
-
“大量 CPU 占用”带来的心理图像......
-
使用分析器准确查看问题所在。