今天我在Linux上运行一份Java代码,效率出奇地慢,甚至跑不出结果。而这份代码我半年前在Linux上运行过是可以跑出结果的,而且速度很快。不清楚其中是什么发生了变化导致了这个问题。
一些线索:
我执行程序的命令是
nohup java -Xmx500000m -Xms500000m Main &
我执行了top
命令,下图是显示的信息:
红框部分是我的执行的Java程序,其中,程序状态一直是S,不知道和这个问题是否有关?
我的Java程序是用较旧版本的JDK编译,然后用较新版本的JRE运行,不知道和这个问题是否有关?
请求各位大佬的帮助!
建议使用工具查一下线程的堆栈信息,比如:jstack 或者 arthas。看看CPU都用在了哪些线程上。
我之前遇到过随机数会导致linux下的cpu 100%问题。