ClownsAndTears 2017-08-15 07:57 采纳率: 0%
浏览 3565
已采纳

Java程序,占用大量cpu不释放问题。

linux服务器共12核,一不小心就是1个核占满,还不带释放的。隔几天一看,10个核没了。导致服务器运行超慢。于是乎,我就在往上查呀查,终于查到点眉目。
我先用命令:top 找到占着大量cpu的进程。
top出来的结果
然后用命令:jstack 39819 > cpu39819.log
我再用命令:top -p 39819 -H 得到一大片占用率是99的进程。
然后我再用:printf "%x\n" 85376 一个一个打印出来得到【14d80】等等结果...
然后编辑 cpu39819.log 查找关于【14d80】等等有关的信息。得到以下东西:
其中一个
第二个
基本大致就是这两处出了问题。开心了,终于找到了问题,然后不看不知道,一看吓一跳。反正我懵了。
这是图一跟过去的代码块。
图一跟过去的代码
这是图二跟过去的代码块。
图二跟过去的代码

这个Element我用的是org.jsoup.nodes.Element。然后我在一步一步似爪牙的跟。
底层代码
底层代码

我不知道哪出了问题?为什么这简单是.text()方法和.html()方法会占用这么大的cpu?还不会释放。求大神。

  • 写回答

2条回答 默认 最新

  • oyljerry 2017-08-15 08:18
    关注

    一个是这个数据量是不是很大,然后就是元素个数是否很多,这样可能会导致读取处理的时候消耗很多CPU

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?