程序根据Netbeans运行,但没有任何进展,java.exe几乎不使用CPU

时间:2013-06-08 16:19:54

标签: java netbeans cpu-usage

我是这个网站的新手,所以我希望我不会违反任何不成文的规则......; - )

我编写了一个针对旅行商问题的启发式算法,该问题首先创建了一个最小生成树,将其扩展为创建一个Euler Tour,然后从Euler Tour中获取一个Hamiltoninan Circle。

该程序可以很好地适用于最多约3700个顶点的图形(虽然它需要一些时间,在我的笔记本电脑上大约需要三个小时),但是现在当我尝试解决~4300个顶点的图形时似乎有问题。

MST是一如既往地创建的,但在创建Euler-Tour的某个时刻,CPU似乎在我的程序中“失去了兴趣”。根据Windows任务管理器,java.exe进程使用大约25%的CPU(四个核心之一),同时解决较小的图形,但现在它降至0 - 1%。根据Netbeans IDE,该程序仍在运行,但我不确定如何处理这些信息。

也许我必须克服一些OutOfMemory-Errors(堆空间),我通过强力组合解决了这个问题 - 我允许项目创建一个4090 MB的堆(4 GB RAM) - 以及一些更改对于可能与此无关的代码。

如果有人能给我一个暗示可能是什么问题,我会非常高兴。

此致 菲尔

1 个答案:

答案 0 :(得分:0)

这可能是因为你的程序中有一个尚未完成的主题。

你的线程可能还活着,因为它被发送到睡眠状态并且从未被唤醒,或者可能存在死锁。我建议您使用visualvm来确定您的线程是否仍在运行,甚至可以看到程序中的哪个位置从高CPU使用率到低CPU使用率,以及一些日志记录,可能会帮助您弄清楚确切的问题。