我有一个内存不足的applet。堆转储分析显示罪魁祸首是traceMsgQueueThread拥有的char [],它包含java控制台输出的全部内容。随着日志消息被发送到控制台,直到最终applet耗尽内存,这会随着时间的推移而增长。
这似乎只发生在一些客户端,并且已经在1.5到1.6.0_10之前的各种JRE中出现过。我们所有的客户都使用相同的参数运行,即-Xmx256m和-XX:+ HeapDumpOnOutOfMemoryError,但只有少数会出现此问题。
关闭控制台似乎在一个实例中工作,但它不可重复,不幸的是,我们不需要记录。
有没有人见过这个,或者知道该怎么办?
答案 0 :(得分:1)
在Windows下,您可以转到控制面板 - > Java-> Advanced-> Java控制台来禁用控制台。这显然必须在逐个机器的基础上完成,它甚至可能没有帮助,但我怀疑告诉它不启动控制台将阻止该线程被创建。
答案 1 :(得分:0)
我必须有一些选项来关闭该跟踪。尝试虚拟机配置或java调用中传递的一些参数。