SWT---資源---第一!
使用SWT做開發(fā)的朋友,一定要注意~資源是一個(gè)殺手!對于我們這些無知的開發(fā)人員,使用了資源,不釋放它,比不寫程序或者不提供這個(gè)功能還可怕~因?yàn)樗?jīng)不起考驗(yàn),到了時(shí)間肯定完蛋!
前兩個(gè)天就遇到了這個(gè),同事寫了一個(gè)插件,一次性從數(shù)據(jù)庫中取得1W以上的數(shù)據(jù)然后組織成樹表格,顯示給客戶~取得數(shù)據(jù)的速度,樹組裝的速度,樹展開的速度,都做了反復(fù)的優(yōu)化,一切優(yōu)化完成以后,就宣布完成!但是沒有測,當(dāng)我連續(xù)打開4個(gè)樹以后,程序就非掉了~
我先加大rcp的啟動(dòng)內(nèi)存,沒用!瘋狂調(diào)用cg,沒用!而且這中錯(cuò)誤錯(cuò)的很奇怪,如果是內(nèi)存異常,應(yīng)該是JVM報(bào)出的,但是這次不是,仔細(xì)閱讀異常,竟然是SWT打開圖片,顏色,字體的時(shí)候的異常~肯定是資源問題了!
因?yàn)橐郧耙恢痹儆肑face的treeviewer組件,所以一直沒有關(guān)心資源的問題~但是1W的數(shù)據(jù),使用的SWT的原生Tree組裝的~而且還用了一些字體~
排查代碼,竟然發(fā)現(xiàn)有字體被new出,但是沒有釋放~問題就出在這里~
調(diào)用了
第一條是"誰占用,誰釋放",第二條是"父構(gòu)件被銷毀,子構(gòu)件也同時(shí)被銷毀"。
客戶虐我千百遍,我待客戶如初戀!
前兩個(gè)天就遇到了這個(gè),同事寫了一個(gè)插件,一次性從數(shù)據(jù)庫中取得1W以上的數(shù)據(jù)然后組織成樹表格,顯示給客戶~取得數(shù)據(jù)的速度,樹組裝的速度,樹展開的速度,都做了反復(fù)的優(yōu)化,一切優(yōu)化完成以后,就宣布完成!但是沒有測,當(dāng)我連續(xù)打開4個(gè)樹以后,程序就非掉了~
我先加大rcp的啟動(dòng)內(nèi)存,沒用!瘋狂調(diào)用cg,沒用!而且這中錯(cuò)誤錯(cuò)的很奇怪,如果是內(nèi)存異常,應(yīng)該是JVM報(bào)出的,但是這次不是,仔細(xì)閱讀異常,竟然是SWT打開圖片,顏色,字體的時(shí)候的異常~肯定是資源問題了!
因?yàn)橐郧耙恢痹儆肑face的treeviewer組件,所以一直沒有關(guān)心資源的問題~但是1W的數(shù)據(jù),使用的SWT的原生Tree組裝的~而且還用了一些字體~
排查代碼,竟然發(fā)現(xiàn)有字體被new出,但是沒有釋放~問題就出在這里~
調(diào)用了
Font font = new Font (display, "Courier", 10, SWT.NORMAL);
那么就應(yīng)該在不在需要這個(gè)Font的時(shí)候調(diào)用
font.dispose();
第一條是"誰占用,誰釋放",第二條是"父構(gòu)件被銷毀,子構(gòu)件也同時(shí)被銷毀"。
客戶虐我千百遍,我待客戶如初戀!
posted on 2007-09-14 16:34 阿南 閱讀(1378) 評論(7) 編輯 收藏 所屬分類: 西安java用戶群 、Eclipse-SWT