<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
    寫的不錯  回復  更多評論
      

    主站蜘蛛池模板: 亚洲一卡二卡三卡| 亚洲国产一区在线| 色偷偷噜噜噜亚洲男人| av免费不卡国产观看| 亚洲电影在线免费观看| 真人做A免费观看| 亚洲无线一二三四区| 丁香花免费完整高清观看| 亚洲国产日韩在线一区| 一二三四在线播放免费观看中文版视频 | 亚洲AV无码成人精品区狼人影院| 无码精品A∨在线观看免费| 亚洲精品美女在线观看| 国产卡一卡二卡三免费入口| 亚洲一区二区三区丝袜| 日本不卡在线观看免费v| 特a级免费高清黄色片 | 亚洲国产精品久久久久| 精品香蕉在线观看免费| 亚洲中文字幕无码中文| 免费欧洲美女牲交视频| 免费无码又爽又刺激网站| 久久夜色精品国产噜噜亚洲AV| 日日麻批免费40分钟日本的| 国产精品国产亚洲区艳妇糸列短篇 | 国产AV无码专区亚洲AV麻豆丫 | 亚洲第一区精品观看| 在线免费观看h片| 亚洲一区二区三区亚瑟| 国产无遮挡色视频免费视频| 亚洲五月午夜免费在线视频| 亚洲精品线在线观看| 最近免费中文字幕大全| 一级做a爰全过程免费视频毛片 | 伊人久久亚洲综合影院首页| jjzz亚洲亚洲女人| 亚洲国产精品免费视频| 欧洲亚洲国产精华液| 亚洲AV日韩AV天堂一区二区三区| 最近的免费中文字幕视频| 国产精品极品美女自在线观看免费 |