<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    spark的自留地(ofbiz/eclipse rcp/shark/opentaps)

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      54 Posts :: 0 Stories :: 112 Comments :: 0 Trackbacks
    2004年開始,我開始讓研發團隊基于Eclipse插件技術開發通用管理軟件(最近的一個產品是一體化企業管理軟件CRM+OA+DSS+進銷存的E-System)

    選取RCP方式開發管理軟件,我們的初衷是期望使得用戶界面的豐富性和易操作,能夠充分利用Eclipse本身豐富的SWT/JFACE/GEF/EMF等技術來完美我們的界面表現,應該說這方面Eclipse RCP確實不辜負我們的期望。

    在四年的Eclipse RCP開發經歷中,經歷了很多坎坷和難以逾越的障礙,其中有一個至今仍在困擾著我們的問題就是Eclipse RCP的性能問題,它主要有以下幾個方面問題:

    1、如何高性能處理服務端與客戶端的數據傳遞?

    2、因為我們軟件面向的用戶是通用市場,用戶機器環境良莠不齊(從最新的四核處理器到十年前的P3機都有人使用,內存從256M到2G都有)?如何克服Eclipse RCP對客戶端應用的高性能要求(用過老機器使用Eclipse開發的都知道那導出Eclipse RCP漫長等待的滋味,2 hours,真是生不如死呀!)?并能盡量發揮機器的處理能力?

    在這方面我嘗試了很多方法,可以用于改善這兩個問題:
    1、選擇最合適的數據傳遞方法,rmi、web-service、hessian、tcp client/server做了下對比,我覺得如何你需要傳遞的數據如果耦合層次比較低、業務關系簡單其實完全可以模擬http方式,用自己的request/response對象進行傳遞。那rmi/web-service是蠻好的選擇。但如果數據之間耦合關系緊密、業務關系復雜(我現在的系統有312個POJO,它們之間都有或緊或密的關系,而視圖由于我讓客戶可以自定義,所以無法在設計階段確定form view與action對象)這樣顯然無法使用web-service(web-service只支持最原始的幾種數據類型)、而直接將對象序列化進行傳遞的方法也不可取(因為pojo對象均有關聯,直接序列化的對象幾乎就是整個數據庫的內容,因為form不確定也無法構造對應的action對象來完成傳遞)。掙扎了很久,最后用了一種折衷的方法,數據傳輸采傳值拷貝序列化方式(但默認只拷貝兩層,即引用的對象中只包含原始屬性,不再包括它引用的對象/集合屬性),在特殊需應用到多層對象級聯數據傳遞時才定制request對象中的約定參數來表明傳遞層次。傳輸方式使用自己定制的tcp client/server方式,選用這種方式主要是為了降低數據傳輸的尺寸(web-service中垃圾太多了),其中細節當然很多(如如何自動為request對象補充未傳輸數據、服務端hibernate對象如何將POJO代理對象拷貝成值對象...),每個問題都是我們的一個血淚史,嘿....

    2、Eclipse對系統硬件的高要求地球人都知道,如何盡量降低它呢?我的原則是盡量不要使用非必要插件,RCP每加載一個插件自然就會多消耗。另外還有一個很重要的方法就是關掉不使用的perspective,NND,當初系統剛出街時,很快就有客戶投訴早上打開系統很快,中午就慢如蝸牛了,一頓臭罵呀!當然也不能隨用隨開,那Eclipse要隋性加載干啥,一樣客戶臭罵(怎么我每點一次鼠標就要出去抽只煙呀?),沒計,只好寫個計數器,從客戶登錄開始就記錄各perspective的使用頻率,把超出范圍(根據客戶的內存選擇,我認為有閑置256M內存不要超過5個,512M內存可以15個,1G以上就可以不關了)的perspective關掉,保持最高使用率的perspective可以隨點隨開。

    BTW:千萬記得要在eclipse rcp中加上運行參數(如果客戶內存富裕你也可以在安裝程序中調高它,我的程序默值是這樣),不然內存被它吃光了,就聽客戶狂打你們客服電話吧!

    -vmargs
    -Xverify:none
    -XX:+UseParallelGC
    -XX:PermSize=20M
    -XX:MaxPermSize=128M
    -Xms64M
    -Xmx128M

    Eclipse RCP關于管理軟件方法應用的開發資料很少,歡迎同道之人相互交流!

    本人原創文章,歡迎轉載,轉載請注明出處!
    posted on 2008-09-30 13:41 shanghai_spark 閱讀(1644) 評論(2)  編輯  收藏 所屬分類: eclipse rcp

    Feedback

    # re: Eclipse RCP 性能問題與解決方案 2008-10-06 09:36 單飛
    Riena挺適合你們的。  回復  更多評論
      

    # re: Eclipse RCP 性能問題與解決方案 2008-10-17 14:10 kangsg219
    寫的不錯  回復  更多評論
      

    主站蜘蛛池模板: 91久久精品国产免费直播| 国产免费人成视频尤勿视频| 日本高清免费观看| 一本色道久久综合亚洲精品| 特级aa**毛片免费观看| 精品免费国产一区二区三区| 亚洲精品成a人在线观看夫| 在线看片韩国免费人成视频| 亚洲国产日韩在线| 全免费毛片在线播放| 亚洲av产在线精品亚洲第一站| 国产福利视精品永久免费| 亚洲一区在线视频观看| 成人午夜免费福利视频| 国产精品亚洲片夜色在线| 亚洲人成电影网站免费| 亚洲精品无码久久久久A片苍井空| 女人毛片a级大学毛片免费| 亚洲国产成人久久精品软件 | 亚洲线精品一区二区三区影音先锋| 日日躁狠狠躁狠狠爱免费视频| 亚洲精品无码久久不卡| 免费无码又爽又刺激网站| 亚洲激情在线视频| 性做久久久久久免费观看| 亚洲第一se情网站| 亚洲综合日韩久久成人AV| 免费无码一区二区三区| 亚洲高清一区二区三区| 啊v在线免费观看| 三级毛片在线免费观看| 亚洲黄色在线视频| 国产精品公开免费视频| 东北美女野外bbwbbw免费| 亚洲福利电影在线观看| 日本高清色本免费现在观看| yellow免费网站| 久久精品国产亚洲精品2020| 在线免费视频一区| a级毛片在线免费观看| 亚洲fuli在线观看|