隨筆-60  評論-138  文章-1  trackbacks-0

          省略掉開場白,減少無謂的喟嘆,進入主題。以下的建議是來自<symbian os j2me 編程指南>中關于怎么優化代碼。
          1.減少不必要的對象變量,因為其要在堆空間分配內存
          2.字符串比較
              String a="now"; String b="now"; 那么,a==b可能返回真,因為jdk1.1并不保證只維持相同字符串的唯一拷貝。可以使用string.intern()方法強制解決問題,該方法返回一個字符串,保證字符串線程池中唯一。
              這樣就可以使用==判斷字符串比較。
          3.字符串串聯時使用stringbuffer ,并且需要給定初始大小。
          4.hash表中的字符串鍵值
             字符串作為hash表中的鍵值,會調用到string的hashcode作為哈希值。但是,string.hashcode會每次都重新計算。可以仿照如下的keystring.當中將哈希碼緩存起來,而不是每次創建,使用setkey可以重用一個keystring事例,避免不必要的對象創建。

           1public final class KeyString{
           2  private String key;
           3  private int hashCode;
           4   public KeyString(String key){
           5         setkey(key);
           6   }

           7   public void setKey(String key){
           8   this.key=key;
           9   hashcode=key.hashcode();
          10   }

          11   public int hashcode(){
          12    return hashcode;
          13   }

          14   public boolean equals(Object obj){
          15      if((obj instanceof KeyString))&&(key==((KeyString)(obj)).key)
          16  return true;
          17  }

          18 
          19}

          5.容器
              使用hashtable 和vector的時候,給出初始容量大小。而stack由于沒有支持設置容量的構造函數,可以使用setsize().
              對于hashtable的初始容量,建議設置成為素數。說是減少內存聚類。作者推薦89這個數字。
          6. 循環
               使用i--更快速,因為循環比較符(>=)是直接編譯進匯編器分支操作碼的。
          7.避免使用循環進行輪詢,據說是,這樣子能夠避免耗電!
              boolean keepruning =false;
              public void run(){
                   while(keepruning){
                     
                      }
              }
          8.算術操作
              當前移動電話上使用的cpu并不能對除法和取摸提供硬件幫助,建議過多運用這些運算的程序考慮讓除數是2的冪次,可以使用右移操作模擬除法,用掩碼操作模擬取摸。
              比如 a%b可以使用a&0x1ff來模擬。
          其他的建議就是緩存,雙緩沖之類的了。
          posted on 2008-06-10 14:35 張氏兄弟 閱讀(1803) 評論(1)  編輯  收藏 所屬分類: 51ditu.com

          評論:
          # re: j2me提升性能_讀書筆記 2008-06-13 15:49 | ~上善若水~
          傳智播客ajax全套內部視頻獨家發布,免費下載

          1.ajax 入門

          2.ajax 原理

          3.ajax 簡單實例

          4.ajax 無限級聯動菜單

          5.ajax 簡易聊天室

          6.ajax 開源框架簡介

          7.DWR 框架源碼分析一

          8.DWR 框架源碼分析二

          9.DWR 框架源碼分析三

          10.DWR 框架源碼分析四

          11.DWR框架源碼分析五

          12.SSH + DWR完成商城驅動

          13. Extjs 簡介

          14 Extjs&nbsp; 簡單實例

          15.SSH + Extjs 開發系列之OA一

          16. SSH + Extjs 開發系列之OA二

          17. SSH + Extjs 開發系列之OA三

          18. SSH + Extjs 開發系列之OA四

          19 .SSH + Extjs 開發系列之OA五

          20.&nbsp;SSH + Extjs 開發系列之OA六

          21. SSH + Extjs 開發系列之OA七

          22.&nbsp;SSH + Extjs 開發系列之OA八

          23.SSH + Extjs 開發系列之OA九

          24.SSH + Extjs 開發系列之OA十

          25. ajax 前景之我見

          下載地址:http://www.ibeifeng.com/read.php?tid=2338&u=5043  回復  更多評論
            
          主站蜘蛛池模板: 铜陵市| 辛集市| 安丘市| 镇康县| 远安县| 桂东县| 林芝县| 聊城市| 临颍县| 宝兴县| 灯塔市| 北安市| 吉林市| 双城市| 兴城市| 高阳县| 东宁县| 刚察县| 芷江| 安宁市| 钦州市| 锦州市| 东乡族自治县| 秭归县| 彭水| 云阳县| 乡宁县| 西昌市| 兴隆县| 彭州市| 山东| 宁安市| 德昌县| 阳高县| 利津县| 惠州市| 湄潭县| 双柏县| 县级市| 宁河县| 临泽县|