CodeMetric啓動後(以下圖)html
代碼統計主要包括:註釋行、空白行、代碼行、總行數(不包括空白行)、總行數(包括空白行)、註釋率、空白率、字符數。(也就是下圖裏面的度量項)java
1、經過點擊按鈕添加目錄/文件添加須要統計的目錄/文件。windows
2、選擇好代碼語言類型,代碼文件後綴輸入框裏面的內容,會自動變成選擇的代碼語言類型默認文件的後綴,也能夠自定義添加代碼文件後綴。後端
3、勾選想要統計的度量項。服務器
4、點擊度量按鈕即可以進行統計。svn
統計輸出格式主要分爲兩種:簡單輸出格式和XML輸出格式。工具
1、簡單輸出格式:測試
2、XML輸出格式:網站
對比兩種統計輸出格式:spa
1、簡單文本格式:可讀性仍是比較清晰的。
2、XML格式:可讀性通常,看起來比較繁雜一點。
兩個細節問題:
1、註釋裏面的空白行會計算進去,統計註釋行數與實際註釋行數有所偏高。
2、顯示細節錯誤:註釋率(SLOC/TTL) ——〉註釋率(CMTL/TTL)
除去上面兩個細節問題,總體上來看還算不錯,功能比較簡單。
啓動ICodeStat後,能夠看到ICodeStat主要有四個功能,分別是:批處理、版本比較、腳本拆分、代碼統計。(以下圖)
代碼統計主要包括:註釋行、空白行、代碼行、總行數(不包括空白行)、總文件數、註釋率、空白率。
1、經過選擇代碼統計功能,下面的組合輸入框變爲文件類型和文件夾,文件類型能夠經過輸入框選擇預先設置好的類型,也能夠手工修改和輸入,文件夾能夠手工輸入也能夠經過目錄選擇對話框選擇。
2、選擇好文件類型和文件夾後,點擊處理就能夠開始代碼統計工做,經過選擇文件類型,能夠實現對不一樣類型的代碼進行分別統計的目的。
3、統計完成後,在下面的統計結果欄中會顯示整體的統計結果,在列表框中會保存每一個文件的統計結果。
統計輸出相似表格的形式,以下圖:
統計輸出格式以相似表格的輸出方式展示,看起來一目瞭然。
統計準確,無偏差,推薦使用。
StatSVN是一個Java寫的開源代碼統計程序,從statCVS移植而來,可以從Subversion版本庫中取得信息,而後生成描述項目開發的各類表格和圖表。好比:代碼行數的時間線;針對每一個開發者的代碼行數;開發者的活躍程度;開發者最近所提交的;文件數量;平均文件大小;最大文件;哪一個文件是修改最屢次數的;目錄大小;帶有文件數量和代碼行數的Repository tree。StatSVN當前版本可以生成一組包括表格與圖表的靜態HTML文檔。
StartSVN官網地址爲:http://www.statsvn.org/index.html
StartSVN的下載頁面爲:http://www.statsvn.org/downloads.html
如今官網上最新的版本爲:statsvn-0.7.0
StatSVN的運行須要Java的運行環境支持,因此你們須要安裝Java的運行環境(Java Runtime Environment)。JRE能夠從Sun的網站上下載。
Statsvn在使用中須要使用SVN的客戶端,所以須要確保機器上能夠訪問到SVN的客戶端命令
首先從SVN倉庫中checkout一個須要統計的路徑(若是在工做目錄下進行統計,首先請更新,保證工做區中的版本是最新的版本,確保統計結果的準確性),例如我把個人某個路徑下的工程checkout在個人電腦上的D:\MyProjects路徑下。
首先經過命令行進入工做目錄:D:\MyProjects ,再使用svn log -v --xml > logfile.log的命令,其中logfile.log爲log文件的名稱,能夠根據須要自行定義。這樣就在工做拷貝的目錄下生成一個名稱爲logfile.log的文件。
注:要在命令行中使用svn命令,在安裝TortoiseSVN時必須選擇安裝commend組件,能夠在cmd命令行裏輸入svn help測試一下該組件是否安裝,若是未安裝是沒法使用svn log命令的。若是可以操做svn server的話也能夠直接在服務器上生成svn log而後下載到本地來使用
首先咱們把從官網上下載的statsvn-0.7.0.zip包解壓縮到D:\statsvn-0.7.0目錄下
經過命令行進入D:\statsvn-0.7.0目錄
調用命令java -jar statsvn.jar D:\MyProjects\logfile.log D:\MyProjects,命令運行成功即完成了統計工做。
該命令的格式是java -jar statsvn.jar [options] <logfile> <checked-out-module>
參數<logfile>爲前一步中生成的svn log文件,<checked-out-module>爲checkout工做拷貝目錄,注意兩個參數都要列出正確的全路徑,不然會提示錯誤如logfile.log找不到等等
1. 先導出svn log
svn log -v --xml -rStartrevision:Endrevision > svn.log local_project
其中Startrevision和Endrevision用來導出一個revision段的svn日誌.local_project是svn上的project checkout到本地的結果.
2. 經過statsvn工具作分析
java -jar statsvn.jar svn.log local_project
運行完成後,就會在$PWD(unix下)或者%CD%(windows下)下生成對應的分析文件,在index.html文件中就有代碼量統計。
輸出以html的方式展現統計內容。(以下圖)
優勢
1、StatSVN會把當前SVN庫的狀態用圖片和圖表的方式展示出來,能夠按不一樣分類分別展開,功能強大。
缺點
1、StatSVN統計的是全部代碼行,包括註釋和空行,但通常度量要求是有效代碼行,在分析時須要注意這一點。
2、StatSVN不考慮修改的代碼行數,只考慮與上一版本相比新增(+)與刪除(-)的代碼行數。
統計結果以圖標的形式表現,功能比較強大,由於統計的內容比較多,我的感受準確率通常。
diffcount代碼行差別統計工具,用於比較兩個代碼包的新增,修改,刪除的代碼量.資源挺好的,統計出來的結果和我本身統計的有些差別。能夠統計的文件類型有些少,並且偏後端語言。另外,在windows下使用的時候,直接敲命令行便可。
1. 差別統計:統計某一個版本的代碼包相對於一個原始的基線代碼包,變更的代碼量,以及變更的代碼量中各語言非空非註釋行(NBNC)的結果;
2.代碼統計:若是須要,能夠把diffcount看成普通的代碼行統計工具,統計一個代碼包;
diffcount命令行方式的編譯是直接經過Makefile進行的,目前提供Linux,Cygwin,Windows(MinGW)三種環境下的編譯腳本,其餘環境中,若是須要編譯和使用,請經過修改Makefile文件進行。
diffcount 的可執行程序名爲 diffcount.exe
想查詢參數信息,請使用 diffcount --help 查詢幫助
diffcount --cn-help 能夠查詢中文幫助, 也能夠查看doc下的"命令行參數說明.txt"
diffcount的參數說明:
使用方法: diffcount [OPTION]... (Baseline) Target
功能:對兩個代碼包進行差別統計、或者對一個代碼包進行代碼行統計packages 是差別統計的兩個對象,也能夠是僅做統計的一個對象
-c --count-only FILE/DIR
僅僅對一個文件或者目錄完成統計代碼行的功能,沒有比較對象,這樣Packages參數的數量只能有一個(文件或目錄)
--ignore-case (DIFF USE ONLY)
在比較的時候,忽略文件名的大小寫差別(缺省狀況會做爲兩個徹底不一樣的文件)僅在「差別統計」時有效。
Tips: 一些產品的代碼,存在不一樣的版本的目錄和文件的大小寫不同的狀況多是copy或者傳送過程當中形成的,對於這種狀況,請使用該開關。
--print-lines-info (DEBUG USE OLY)
輸出每一個文件差別比較後的差別結果和初步統計信息(逐行),主要用於分析錯誤,
注意不要針對大型代碼包使用,不然逐行打印時間消耗驚人
--print-files-info
使用這個開關,當每一個文件差別比較和統計之後,輸出該文件差別統計的結果信息
缺省不打印每一個文件的信息,只打印最後的結果
Tips: 上邊兩個開關都須要打印控制檯,若是文件較多的話,打印的時間會很長
所以除非有具體分析須要,不然儘可能不要打開
--force-parse-all (DIFF USE ONLY)
強制對全部文件進行分析處理(即便它們是徹底相同的),缺省對徹底相同的文件略過
僅在「差別統計」時有效,代碼行統計(count-only)時全部文件都要處理
--for-program-reading
改變輸出方式,以格式化文本形式輸出,便於其餘程序讀取結果信息在由第三方程序調用diffcount,並須要讀取統計結果的時候使用,該選項會屏蔽--print-lines-info選項
-v --version
輸出當前的版本信息
--help
輸出幫助信息
1.差別統計
統計某一個版本的代碼包相對於一個原始的基線代碼包,變更的代碼量以及變更的代碼量中各語言非空非註釋行(NBNC)的結果
diffcount 缺省執行的就是差別統計,直接跟上兩個代碼包的目錄便可
在diffcount目錄下執行:
diffcount test\sp1 test\sp2
實際使用中,可能會有文件名和目錄名大小寫不一致的狀況,若是但願忽略文件名大小寫的差別,須要使用 --ignore-case參數,不然兩個同樣的文件,一個會算做刪除,一個會算做新增
ADD MOD DEL A&M BLK CMT NBNC RATE 的 含義分別爲:新增、修改、刪除、新增+修改、空行、註釋、非空非註釋行、標準C折算率
2、代碼統計:
若是須要,能夠把diffcount看成普通的代碼行統計工具,統計一個代碼包
代碼統計使用 -c (或者--count-only)參數,在diffcount目錄下執行
diffcount -c test\count
執行結果以下:
Diffcount主要功能包括代碼統計和差別統計,代碼統計操做經過命令式方式操做,整體操做還算簡單,適合開發者操做,代碼統計相對於上面其餘三個沒特別優點,若是是想用差別統計推薦使用Diffcount。