• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    Java性能

    發布: 2009-6-17 09:33 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 83次 | 進入軟件測試論壇討論

    領測軟件測試網

    D.2.3 特殊工具

    如果想隨時跟上性能優化工具的潮流,最好的方法就是作一些Web站點的?。比如由Jonathan Hardwick制作的“Tools for Optimizing Java”(Java優化工具)網站:
    http://www.cs.cmu.edu/~jch/java/tools.html

    D.2.4 性能評測的技巧

    ■由于評測時要用到系統時鐘,所以當時不要運行其他任何進程或應用程序,以免影響測試結果。
    ■如對自己的程序進行了修改,并試圖(至少在開發平臺上)改善它的性能,那么在修改前后應分別測試一下代碼的執行時間。
    ■盡量在完全一致的環境中進行每一次時間測試。
    ■如果可能,應設計一個不依賴任何用戶輸入的測試,避免用戶的不同反應導致結果出現誤差。

    D.3 提速方法

    現在,關鍵的性能瓶頸應已隔離出來。接下來,可對其應用兩種類型的優化:常規手段以及依賴Java語言。

    D.3.1 常規手段

    通常,一個有效的提速方法是用更現實的方式重新定義程序。例如,在《Programming Pearls》(編程拾貝)一書中[14],Bentley利用了一段小說數據描寫,它可以生成速度非?、而且非常精簡的拼寫檢查器,從而介紹了Doug McIlroy對英語語言的表述。除此以外,與其他方法相比,更好的算法也許能帶來更大的性能提升——特別是在數據集的尺寸越來越大的時候。欲了解這些常規手段的詳情,請參考本附錄末尾的“一般書籍”清單。

    D.3.2 依賴語言的方法

    為進行客觀的分析,最好明確掌握各種運算的執行時間。這樣一來,得到的結果可獨立于當前使用的計算機——通過除以花在本地賦值上的時間,最后得到的就是“標準時間”。

    運算 示例 標準時間

    本地賦值 i=n; 1.0
    實例賦值 this.i=n; 1.2
    int增值 i++; 1.5
    byte增值 b++; 2.0
    short增值 s++; 2.0
    float增值 f++; 2.0
    double增值 d++; 2.0
    空循環 while(true) n++; 2.0
    三元表達式 (x<0) ?-x : x 2.2
    算術調用 Math.abs(x); 2.5
    數組賦值 a[0] = n; 2.7
    long增值 l++; 3.5
    方法調用 funct(); 5.9
    throw或catch異常 try{ throw e; }或catch(e){} 320
    同步方法調用 synchMehod(); 570
    新建對象 new Object(); 980
    新建數組 new int[10]; 3100

    通過自己的系統(如我的Pentium 200 Pro,Netscape 3及JDK 1.1.5),這些相對時間向大家揭示出:新建對象和數組會造成最沉重的開銷,同步會造成比較沉重的開銷,而一次不同步的方法調用會造成適度的開銷。參考資源[5]和[6]為大家總結了測量用程序片的Web地址,可到自己的機器上運行它們。

    1. 常規修改

    下面是加快Java程序關鍵部分執行速度的一些常規操作建議(注意對比修改前后的測試結果)。

    將... 修改成... 理由

    接口 抽象類(只需一個父時) 接口的多個繼承會妨礙性能的優化
    非本地或數組循環變量 本地循環變量 根據前表的耗時比較,一次實例整數賦值的時間是本地整數賦值時間的1.2倍,但數組賦值的時間是本地整數賦值的2.7倍
    鏈接列表(固定尺寸) 保存丟棄的鏈接項目,或將列表替換成一個循環數組(大致知道尺寸) 每新建一個對象,都相當于本地賦值980次。參考“重復利用對象”(下一節)、Van Wyk[12] p.87以及Bentley[15] p.81
    x/2(或2的任意次冪) X>>2(或2的任意次冪) 使用更快的硬件指令

    D.3.3 特殊情況

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    32/3<123>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>