歡迎您光臨本站 註冊首頁

Java初期學者程序性能容易的問題測試

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0
  1 介紹
  在開發中,性能測試是設計初期容易忽略的問題,開發人員會為了解決一個問題而「不擇手段」,作者所參與的項目中也遇到了類似問題,字元串拼接、大量的調用和資料庫訪問等等都對系統的性能產生了影響,可是大家不會關心這些問題,「CPU速度在變快」,「內存在變大」,並且,「好像也沒有那麼慢吧」.
  有很多商業的性能測試軟體可供使用,如Jprofiler、JProbe Profiler等,但在開發當中顯得有些遙遠而又昂貴.
  2 目標
  本文將講述如何利用語言本身提供的方法在開發中進行性能測試,找到系統瓶頸,進而改進設計;並且在盡量不修改測試對象的情況下進行測試.
  3 預備知識
  面向對象編程通過抽象繼承採用模塊化的來求解問題域,但是模塊化不能很好的解決所有問題.有時,這些問題可能在多個模塊中都出現,像日誌功能,為了記錄每個方法進入和離開時的信息,你不得不在每個方法里添加log("in some method")等信息.如何解決這類問題呢?將這些解決問題的功能點散落在多個模塊中會使冗餘增大,並且當很多個功能點出現在一個模塊中時,代碼變的很難維護.因此,AOP(Aspect Oriented Programming)應運而生.如果說OOP(Aobject Oriented Programming)關注的是一個類的垂直結構,那麼AOP是從水平角度來看待問題.
  動態代理類可以在運行時實現若干介面,每一個動態代理類都有一個Invocation handler對象與之對應,這個對象實現了InvocationHandler介面,通過動態代理的介面對動態代理對象的方法調用會轉而調用Invocation handler對象的invoke方法,通過動態代理實例、方法對象和參數對象可以執行調用並返回結果.
  說到AOP,大家首先會想到的是日誌記錄、許可權和事務,是的,AOP是解決這些問題的好辦法.本文根據AOP的思想,通過動態代理來解決一類新的問題——性能測試(performance testing).
  性能測試主要包括以下幾個方面:
  計算性能:可能是人們首先關心的,簡單的說就是執行一段代碼所用的時間
  內存消耗:程序運行所佔用的內存大小
  啟動時間:從你啟動程序到程序正常運行的時間
  可伸縮性(scalability)
  用戶察覺性能(perceived performance):不是程序實際運行有多快,而是用戶感覺程序運行有多快.
  本文主要給出了計算性能測試和內存消耗測試的可行辦法.


[火星人 ] Java初期學者程序性能容易的問題測試已經有297次圍觀

http://coctec.com/docs/java/show-post-59943.html