代碼統計工具實測點評



1. CodeMetric:

CodeMetric啓動後(以下圖)html

 

 

1.1. 代碼統計項:

代碼統計主要包括:註釋行、空白行、代碼行、總行數(不包括空白行)、總行數(包括空白行)、註釋率、空白率、字符數。(也就是下圖裏面的度量項)java

 

1.2. 基本操做:

1經過點擊按鈕添加目錄/文件添加須要統計的目錄/文件。windows

2選擇好代碼語言類型,代碼文件後綴輸入框裏面的內容,會自動變成選擇的代碼語言類型默認文件的後綴,也能夠自定義添加代碼文件後綴。後端

3勾選想要統計的度量項。服務器

4、點擊度量按鈕即可以進行統計svn

1.3. 統計輸出格式:

統計輸出格式主要分爲兩種:簡單輸出格式和XML輸出格式。工具

 

1、簡單輸出格式:測試

 

 

 

2XML輸出格式:網站

 

 

1.4. 實測點評:

對比兩種統計輸出格式:spa

1、簡單文本格式:可讀性仍是比較清晰的。

2XML格式:可讀性通常,看起來比較繁雜一點。

兩個細節問題:

1、註釋裏面的空白行會計算進去,統計註釋行數與實際註釋行數有所偏高。

2、顯示細節錯誤:註釋率(SLOC/TTL ——〉註釋率(CMTL/TTL

除去上面兩個細節問題,總體上來看還算不錯,功能比較簡單。

 

 

2. ICodeStat:

啓動ICodeStat後,能夠看到ICodeStat主要有四個功能,分別是:批處理、版本比較、腳本拆分、代碼統計。(以下圖)

 

2.1. 代碼統計項:

代碼統計主要包括:註釋行、空白行、代碼行、總行數(不包括空白行)、總文件數、註釋率、空白率。

 

2.2. 基本操做:

1經過選擇代碼統計功能,下面的組合輸入框變爲文件類型和文件夾,文件類型能夠經過輸入框選擇預先設置好的類型,也能夠手工修改和輸入,文件夾能夠手工輸入也能夠經過目錄選擇對話框選擇。

2選擇好文件類型和文件夾後,點擊處理就能夠開始代碼統計工做,經過選擇文件類型,能夠實現對不一樣類型的代碼進行分別統計的目的。

3統計完成後,在下面的統計結果欄中會顯示整體的統計結果,在列表框中會保存每一個文件的統計結果。

2.3. 統計輸出格式:

統計輸出相似表格的形式,以下圖:

 

 

2.4. 實測點評:

統計輸出格式以相似表格的輸出方式展示,看起來一目瞭然。

統計準確,無偏差,推薦使用。


3. StatSVN

3.1. 相關說明:

StatSVN是一個Java寫的開源代碼統計程序,從statCVS移植而來,可以從Subversion版本庫中取得信息,而後生成描述項目開發的各類表格和圖表。好比:代碼行數的時間線;針對每一個開發者的代碼行數;開發者的活躍程度;開發者最近所提交的;文件數量;平均文件大小;最大文件;哪一個文件是修改最屢次數的;目錄大小;帶有文件數量和代碼行數的Repository treeStatSVN當前版本可以生成一組包括表格與圖表的靜態HTML文檔。

3.2.  StatSVN下載

StartSVN官網地址爲:http://www.statsvn.org/index.html

StartSVN的下載頁面爲:http://www.statsvn.org/downloads.html

如今官網上最新的版本爲:statsvn-0.7.0

3.3. StatSVN使用須知

StatSVN的運行須要Java的運行環境支持,因此你們須要安裝Java的運行環境(Java Runtime Environment)。JRE能夠從Sun的網站上下載。

Statsvn在使用中須要使用SVN的客戶端,所以須要確保機器上能夠訪問到SVN的客戶端命令

3.4. Checkout工做拷貝

首先從SVN倉庫中checkout一個須要統計的路徑(若是在工做目錄下進行統計,首先請更新,保證工做區中的版本是最新的版本,確保統計結果的準確性),例如我把個人某個路徑下的工程checkout在個人電腦上的D:\MyProjects路徑下。

3.5. 生成svn log文件

首先經過命令行進入工做目錄:D:\MyProjects ,再使用svn log -v --xml > logfile.log的命令,其中logfile.loglog文件的名稱,能夠根據須要自行定義。這樣就在工做拷貝的目錄下生成一個名稱爲logfile.log的文件。

注:要在命令行中使用svn命令,在安裝TortoiseSVN時必須選擇安裝commend組件,能夠在cmd命令行裏輸入svn help測試一下該組件是否安裝,若是未安裝是沒法使用svn log命令的。若是可以操做svn server的話也能夠直接在服務器上生成svn log而後下載到本地來使用

3.6. 調用StatSVN進行統計

首先咱們把從官網上下載的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找不到等等

3.7. 基本操做:

1. 先導出svn log

   svn log -v --xml -rStartrevision:Endrevision > svn.log local_project

   其中StartrevisionEndrevision用來導出一個revision段的svn日誌.local_projectsvn上的project checkout到本地的結果.

2. 經過statsvn工具作分析

  java -jar statsvn.jar svn.log local_project

  運行完成後,就會在$PWD(unix)或者%CD%(windows)下生成對應的分析文件,index.html文件中就有代碼量統計。

3.8. 統計輸出格式:

輸出以html的方式展現統計內容。(以下圖)

 

 

3.9. 實測點評:

優勢

1StatSVN會把當前SVN庫的狀態用圖片和圖表的方式展示出來,能夠按不一樣分類分別展開,功能強大。

缺點

1StatSVN統計的是全部代碼行,包括註釋和空行,但通常度量要求是有效代碼行,在分析時須要注意這一點。

2StatSVN不考慮修改的代碼行數,只考慮與上一版本相比新增(+)與刪除(-)的代碼行數。

 

統計結果以圖標的形式表現,功能比較強大,由於統計的內容比較多,我的感受準確率通常。

 


4Diffcount

4.1. 相關說明:

diffcount代碼行差別統計工具,用於比較兩個代碼包的新增,修改,刪除的代碼量.資源挺好的,統計出來的結果和我本身統計的有些差別。能夠統計的文件類型有些少,並且偏後端語言。另外,在windows下使用的時候,直接敲命令行便可。

4.2. 主要功能:

1. 差別統計:統計某一個版本的代碼包相對於一個原始的基線代碼包,變更的代碼量,以及變更的代碼量中各語言非空非註釋行(NBNC)的結果;

2.代碼統計:若是須要,能夠把diffcount看成普通的代碼行統計工具,統計一個代碼包;

diffcount命令行方式的編譯是直接經過Makefile進行的,目前提供Linux,Cygwin,Windows(MinGW)三種環境下的編譯腳本,其餘環境中,若是須要編譯和使用,請經過修改Makefile文件進行。

diffcount 的可執行程序名爲 diffcount.exe

想查詢參數信息,請使用 diffcount --help 查詢幫助

 

diffcount --cn-help 能夠查詢中文幫助, 也能夠查看doc下的"命令行參數說明.txt"

4.3. 參數說明:

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

輸出幫助信息

4.4. 使用方法:

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

執行結果以下:

 

4.5. 實測點評:

Diffcount主要功能包括代碼統計和差別統計,代碼統計操做經過命令式方式操做,整體操做還算簡單,適合開發者操做,代碼統計相對於上面其餘三個沒特別優點,若是是想用差別統計推薦使用Diffcount

 

下載Diffcount

相關文章
相關標籤/搜索