饒榮慶 -- 您今天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
          主站蜘蛛池模板: 吉水县| 沾益县| 彩票| 花莲县| 内江市| 五家渠市| 搜索| 尼玛县| 金溪县| 英德市| 武义县| 家居| 麻城市| 瑞安市| 涿州市| 上思县| 鄂伦春自治旗| 东阳市| 中山市| 南木林县| 呼和浩特市| 和田县| 丰镇市| 兖州市| 元阳县| 镇宁| 荣成市| 百色市| 陇川县| 彭州市| 九寨沟县| 宁明县| 南雄市| 小金县| 海丰县| 闵行区| 古浪县| 嘉禾县| 怀仁县| 华阴市| 建湖县|