大夢(mèng)想家

          5年開發(fā)工程師,2年實(shí)施經(jīng)理,X年售前顧問,......
          數(shù)據(jù)加載中……
          SWT---資源---第一!
               使用SWT做開發(fā)的朋友,一定要注意~資源是一個(gè)殺手!對(duì)于我們這些無知的開發(fā)人員,使用了資源,不釋放它,比不寫程序或者不提供這個(gè)功能還可怕~因?yàn)樗?jīng)不起考驗(yàn),到了時(shí)間肯定完蛋!
               前兩個(gè)天就遇到了這個(gè),同事寫了一個(gè)插件,一次性從數(shù)據(jù)庫中取得1W以上的數(shù)據(jù)然后組織成樹表格,顯示給客戶~取得數(shù)據(jù)的速度,樹組裝的速度,樹展開的速度,都做了反復(fù)的優(yōu)化,一切優(yōu)化完成以后,就宣布完成!但是沒有測(cè),當(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è)原則:
          第一條是"誰占用,誰釋放",第二條是"父構(gòu)件被銷毀,子構(gòu)件也同時(shí)被銷毀"。

          客戶虐我千百遍,我待客戶如初戀!

          posted on 2007-09-14 16:34 阿南 閱讀(1378) 評(píng)論(7)  編輯  收藏 所屬分類: 西安java用戶群Eclipse-SWT

          評(píng)論

          # re: SWT---資源---第一! 2007-09-14 21:50 千里冰封

          SWT再好應(yīng)該也沒有SWING好吧,其實(shí)SWING的架構(gòu)是非常優(yōu)秀的。而SWT只是和AWT差不多而已

          # re: SWT---資源---第一! 2007-09-14 22:17 Matthew Chen

          看冰封說的,swt還是不錯(cuò)的,老實(shí)說覺得用swt和用vb之類的差不多,簡(jiǎn)單點(diǎn),追求速度,用戶滿意度,但由于并非由jvm控制資源,很難獲得穩(wěn)定性。swing的架構(gòu)那是經(jīng)典mvc,在配以jvm的呵護(hù),自然是優(yōu)秀的,簡(jiǎn)直是媲美j2ee的架構(gòu)啊。

          # re: SWT---資源---第一! 2007-09-14 22:33 BeanSoft

          呵呵 SWT 組件擴(kuò)展比較費(fèi)勁. 有誰能告訴我如何實(shí)現(xiàn)下面的功能:
          動(dòng)態(tài)的將 CTabItem 隱藏/顯示... 似乎隱藏除了 dispose() 沒辦法了..

          我期望有方法 setVisible(boolean) 可以來調(diào)用.

          # re: SWT---資源---第一! 2007-09-15 00:30 ev0

          碰到系統(tǒng)資源的管理還是最好用jface里對(duì)應(yīng)的registry

          # re: SWT---資源---第一! 2007-09-15 09:28 千里冰封

          呵呵,我還是覺得跨平臺(tái)的應(yīng)用,還是SWING好一些,用JAVA的外觀,在每個(gè)平臺(tái)幾乎有一樣的表現(xiàn)

          # re: SWT---資源---第一! 2007-10-16 13:01 翔南

          恩 一定要及時(shí)釋放資源!

          # re: SWT---資源---第一! 2007-10-22 11:51 study

          哈哈,個(gè)人比如一下:寫代碼就好比人吃飯,如果上一餐吃得太多還沒有消化就接著來第二餐很容易消化不良.
          主站蜘蛛池模板: 石城县| 泰和县| 新化县| 原阳县| 卢湾区| 安溪县| 彰武县| 建水县| 龙川县| 报价| 开平市| 渭源县| 南阳市| 剑阁县| 女性| 玉田县| 七台河市| 郯城县| 甘德县| 金昌市| 清水县| 西贡区| 锦州市| 桃江县| 华安县| 明水县| 含山县| 河北区| 得荣县| 惠州市| 新丰县| 密山市| 图木舒克市| 原阳县| 佛教| 桐城市| 丹棱县| 同心县| 勃利县| 新郑市| 万山特区|