simple profiler

simple profiler

1、概述

   做一個無侵入性的Java性能分析工具,使用的技術有:sun attach api, java instrument api, java bytecode, asm framework

2、使用方式:

   參數:
   javapid                  - java 進程號
   profile type            - profile  類型,參見profile類型介紹
   class name            - 需要profile的類名。支持正則表達式
   port    (optional)    - 查看結果的端口,使用http協議輸出結果
   profile log location   
            (optional)     - 如果採用detail模式進行profile,會有給予call hierarchy的日誌作爲輸出結果。此參數用於指定日誌文件路徑
   profile depth         - 使用detail模式時,不可能對所有的調用進行profile,不然會有很大的性能開銷。因此要指定一個深度,即從開始profile的類開始,根據callstack,最多profile的層數

3、profile type介紹

  3.1、simple

    簡單模式,只profile匹配的類的所有public方法的執行時間、次數、總耗時、大於200ms的操作次數、大於200ms的操作耗時
    給予以上數據可以可以做簡單的分析

  3.2、flow

    流模式,定期將統計數據輸出到文件並且清零統計結果,其他細節與simple模式相同。一般用來繪製性能統計圖表

  3.3、detail

    細節模式,細節模式會根據profile depth統計每層方法的調用時間並定期append到日誌文件中以供後續的分析

  simple模式主要作爲performance monitor進行報警和簡單的彙總分析。
  flow模式可用來使用給予ttdtool的工具進行彙總畫圖,進行進一步的性能分析,一般用來壓測時提高壓力是觀測性能變化
  detail模式主要用在壓測環境定位性能熱點。推薦的流程是使用simple模式簡單定位到hotspot後在壓測環境中使用detail模式進一步排查性能瓶頸

 

圖片:

 

發佈了71 篇原創文章 · 獲贊 3 · 訪問量 38萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章