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

          3G 手機開發(fā)網(wǎng)

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

          昨天,因為工作需要想了解下腳步引擎的實現(xiàn)原理,下載了一個開源腳本引擎,研究了下,3GEYE ^9ys.p?^.p;G!s
          如果大家需要下載的,請到我空間Google下,就可以發(fā)現(xiàn)這個腳本引擎的具體地址。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
          上面是作者讀取腳本文件代碼,本人覺得這個代碼的效率很低,一個個字符讀取出來,速度很慢,我測試了下發(fā)現(xiàn)讀取一個很簡單的文件需要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字節(jié)的緩沖區(qū)去讀取這些數(shù)據(jù),經(jīng)過測試發(fā)現(xiàn)Dell 1420機器上的花費是0毫秒。3GEYEM G U,s4| A$t
          快了非常多。
          /P:B`OX*H?E3不過腳本引擎除了讀取源文件外,最重要的核心是解釋引擎的速度。3GEYE%\ _`K4?#s;Zv

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




          爬蟲工作室 -- 專業(yè)的手機軟件開發(fā)工作室
          3G視線 -- 專注手機軟件開發(fā)
          posted on 2008-03-27 12:32 3G工作室 閱讀(1492) 評論(0)  編輯  收藏 所屬分類: j2me
          主站蜘蛛池模板: 双鸭山市| 霞浦县| 平定县| 张家界市| 桐梓县| 芮城县| 邛崃市| 湖州市| 扶绥县| 榕江县| 临猗县| 旌德县| 舒城县| 湘潭县| 建始县| 汝阳县| 昆山市| 万荣县| 泸定县| 临桂县| 临安市| 镇原县| 南川市| 柏乡县| 田东县| 黔西| 从化市| 神池县| 神农架林区| 安陆市| 类乌齐县| 永修县| 达孜县| 手游| 临汾市| 拜泉县| 牙克石市| 上高县| 洞头县| 额尔古纳市| 德州市|