饒榮慶 -- 您今天UCWEB了嗎?--http://www.ucweb.com

          3G 手機開發網

             :: 首頁 :: 聯系 :: 聚合  :: 管理
            99 Posts :: 1 Stories :: 219 Comments :: 0 Trackbacks
          原文 http://www.3geye.net/?3/viewspace-3187

          昨天,因為工作需要想了解下腳步引擎的實現原理,下載了一個開源腳本引擎,研究了下,3GEYE ^9ys.p?^.p;G!s
          如果大家需要下載的,請到我空間Google下,就可以發現這個腳本引擎的具體地址。3GEYEX6xWl(p Y!Cl)z1^$`
          下面我來說下這個腳本引擎的一些性能問題。
          ![n t*w S` m3
          %p6mw8VX3Qx;{ K%D5q3首先來看看他是怎么讀取腳本文件的。3GEYE6C~3UC p4d8{
          3GEYEQF)A$pt)Q OG a
          代碼
          ;wv2zD:bP33GEYE+er GU4vzrz
           InputStream is = new Object().getClass().getResourceAsStream(path);   //j2me使用
          0}%j6Ch}V'p3 ByteArrayOutputStream baos = new ByteArrayOutputStream();
          MCd,`3n ~'S(|3 int ch = 0;
          8|@DzXe:m2^O3    while ( (ch = is.read()) != -1) {3GEYE.fv`!mwn(R
                baos.write(ch);3GEYE$l | B8R"`jO
          }3GEYE7{:AKw1ZF4}?j:T
          上面是作者讀取腳本文件代碼,本人覺得這個代碼的效率很低,一個個字符讀取出來,速度很慢,我測試了下發現讀取一個很簡單的文件需要47毫秒,在Dell 1420的機器上。這樣的效率是很可怕的。
          Lp?EZ:^33GEYE:vN|Ou:C1X$^
          下面看看我是怎么提高他的性能的。
          "s'O3K:xW4IZ,Rm,R)I33GEYE(Gh6CO+G`
          byte[] buff = new byte[512];3GEYE7u9]xA,?I
                      long total = 0;3GEYEQ In|*A[1P
                      int count = 0;3GEYE u J?J0d
          3GEYEQ%fN X"|9W3JB
                      while ((count = is.read(buff)) > 0) {
          *@)teb6P)df&e+r3                baos.write(buff, 0, count);3GEYE5`X;C,@g?P6i o
                          total += count;3GEYEnM7S+Gp)}$L(JG-m
                      }
          []"|L%v8r$~3我是采用了一個512字節的緩沖區去讀取這些數據,經過測試發現Dell 1420機器上的花費是0毫秒。3GEYEM G U,s4| A$t
          快了非常多。
          /P:B`OX*H?E3不過腳本引擎除了讀取源文件外,最重要的核心是解釋引擎的速度。3GEYE%\ _`K4?#s;Zv

          Ee[:?i$Rm3有時間繼續研究下。3GEYEjY-`8MTs




          爬蟲工作室 -- 專業的手機軟件開發工作室
          3G視線 -- 專注手機軟件開發
          posted on 2008-03-27 12:32 3G工作室 閱讀(1487) 評論(0)  編輯  收藏 所屬分類: j2me
          主站蜘蛛池模板: 盖州市| 双辽市| 乳源| 开封市| 锡林浩特市| 桑日县| 清流县| 芮城县| 陵川县| 新源县| 崇礼县| 运城市| 道孚县| 惠东县| 鹤峰县| 东丽区| 江华| 涟源市| 利辛县| 玛多县| 长兴县| 璧山县| 辛集市| 灌南县| 普安县| 广德县| 田阳县| 石渠县| 金秀| 成安县| 喀喇沁旗| 曲靖市| 田阳县| 泰安市| 新建县| 灌南县| 陵水| 津市市| 岱山县| 育儿| 自贡市|