我們有一個基於swt和在linux上運行的監視應用程序。我們有幾個按鈕和一個動態部分,隨着我們點擊這些按鈕而發生變化。問題是,如果有些點擊太快,CPU可以達到100%並永久懸掛。我們只在Ubuntu Linux上觀察到了這種快速的CPU峯值,因爲它運行的時候沒有癢。我們確信,無論何時點擊(我們有動態部分)按鈕,我們的應用都會進行重新繪製,這是設計。動態部分不僅僅是問題。一種解決方案是忽略快速點擊。Linux上的swt GUI性能問題
我們想知道我們是否可以忽略快速按鈕點擊,以避免cpu一路跳到100%。如果這不起作用,我們可能不得不重新設計我們更喜歡的動態部分作爲最後一個選項。建議/意見非常感謝。
隨着更多的調查,我發現我的Linux機器內存不足,我在日誌中什麼也看不到。我的堆內存在限制範圍內。所以現在我懷疑可能會有一些本機內存泄漏,因爲我們正在使用swt。當我查看代碼時,一個類正在使用finalize方法來處理swt對象。我懷疑這可能是罪魁禍首。這個對象是由gc完成的,但留下本機內存資源並導致泄漏? – Kishore 2010-03-16 16:13:22
可能...最終確定是不確定的。您不能使用finalize來釋放SWT中的內存。 – nanda 2010-03-22 14:28:09
是的。我們有代碼來完成方法中釋放本機內存。雖然我們沒有重新考慮它,但我們有計劃這樣做。 – Kishore 2010-06-23 14:52:16