2013-12-13 26 views
3

我在使用我的swing应用程序在某些用户的机器上看到一些有趣的行为。我想知道有没有人遇到类似的问题?Swing应用程序在多个显示器配置上变慢

应用程序是非常占用大量内存,我们最近一直在与X毫秒== == XMX部署它512M

有问题的用户机器的Windows XP中盒,4GB内存,带有一个双核处理器512M NVidia NVS300显卡。他们正在运行多个显示器设置;一个用户有2个,另一个用户有4个。

我们已经看到,该应用运行良好一段时间。然后,由于某种原因,速度变慢 - 重新绘制速度变得非常缓慢,应用程序开始搅动CPU。

事情是;如果将屏幕拖动到任何其他显示器上,则CPU使用率将下降,并且应用程序会再次正常启动。

我猜这是与内存有关的,因为它发生在使用堆增加时,但我无法解释为什么。我们之前已经部署了-Xms256M,并且据我所知,没有人在使用该配置运行时报告了这个问题。

任何人都可以帮助解释可能会发生什么?

感谢, 理查德

+0

用户可以有多个帧,但我已经看到了它只是一个单一的框架发生。它使用Jide对接框架btw。 – RichardP

+1

看起来更像是一个重绘问题,而不是多重显示问题。你确定你没有密集创建对象,也不会在绘图方法中释放引用吗?也许效果会被更多的显示器所放大......我一定会在那里查看,或者让它在单台显示器上运行几天。 – Samy

+0

我想你应该检查你的回调函数。检查所有绘制方法,尽量避免回调函数中的内存分配和静态变量分配。同样的事情,你需要检查所有的渲染。在我们的应用程序的某些日子之前发现的类似问题,即应用程序运行时间较长,则速度变慢。您还要检查这些函数以进行繁重的计算,并尝试优化这些函数中的计算。 –

回答

0

尝试禁用其中大部分是不需要的,并把我的应用程序中的巨大的性能提升的Direct 3D。

-Dsun.java2d.d3d =假

Disabling 3D

相关问题