我开发的应用程序确实有问题。当我长时间运行它时,CPU负载会慢慢上升。这是 45 分钟后 Java VisualVM 的屏幕截图。
如您所见,内存使用量和线程数非常恒定。应用程序打开一个 LAN 插座并每 2 秒进行一次测量。此测量在单独的线程中运行(可以在右下角的线程图中看到)。
CPU 使用率缓慢但肯定地增加,一夜之间它累积到 70-80% 左右,此时整个系统显着减慢(显然)。现在我当然不希望这种增加,但找不到原因。没有内存泄漏(这也会导致内存不断增加),也没有生成越来越多的线程(因为计数也很稳定)。
我的应用程序有一个广泛的 GUI 和几个线程。以下是分析器中的线程列表:
我将“我的”线程标记为黄色。因此,MeasurementCommunication.startMeasurement
只要需要,就会创建(并再次终止)线程。所以任何时候只有一个人在奔跑。
所以长话短说:我不知道 CPU 的增加是从哪里来的。你有什么想法?也许这是一个普遍的Java问题? 如果您需要更多信息或细节,请告诉我,我会尽力回答。;)