2013-12-13 54 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

相關問題