<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只支持最原始的幾種數據類型)、而直接將對象序列化進行傳遞的方法也不可?。ㄒ驗閜ojo對象均有關聯,直接序列化的對象幾乎就是整個數據庫的內容,因為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 閱讀(1653) 評論(2)  編輯  收藏 所屬分類: eclipse rcp

    Feedback

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

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

    主站蜘蛛池模板: 巨胸喷奶水www永久免费| 国产精品亚洲五月天高清| 永久在线观看免费视频| 国产亚洲欧洲Aⅴ综合一区| 老司机午夜精品视频在线观看免费| 在线免费视频一区二区| 亚洲一区二区三区成人网站| 成人免费在线观看网站| 亚洲字幕AV一区二区三区四区| 国内免费高清在线观看| 亚洲国产欧美国产综合一区 | 国产精品亚洲综合久久| 永久免费av无码不卡在线观看| 亚洲高清有码中文字| 国产成人精品免费直播| 日韩毛片免费一二三| 夜夜春亚洲嫩草影院| **一级毛片免费完整视| 亚洲精品国产国语| 亚洲av麻豆aⅴ无码电影| 国产精品内射视频免费| 图图资源网亚洲综合网站| 真人做人试看60分钟免费视频| 亚洲综合成人婷婷五月网址| 国产免费拔擦拔擦8x| 亚洲影视一区二区| 亚洲国产精品张柏芝在线观看| 日批日出水久久亚洲精品tv| 国产精品亚洲不卡一区二区三区| 亚洲色欲www综合网| 久久久久国色AV免费观看性色| 国产成人亚洲综合a∨| 国产亚洲真人做受在线观看| 95老司机免费福利| 日本不卡免费新一二三区| 色多多www视频在线观看免费| 亚洲av无码成人黄网站在线观看| 91在线视频免费播放| 女人裸身j部免费视频无遮挡| 91亚洲国产成人久久精品网站| 免费视频淫片aa毛片|