linux下有没有什么好的代码统计工具

linux下有没有什么好的代码统计工具,第1张

1 sloccount源代码行数统计工具

--------------------------------------------------------------------------------

sloccount=Count Source Lines Of Code

官网 : http://www.dwheeler.com/sloccount/

1.1 Ubuntu安装

--------------------------------------------------------------------------------

sudo apt-get install sloccount

1.2 使用

--------------------------------------------------------------------------------

sloccount [--version] [--cached] [--append] [ --datadir directory ]

[--follow] [--duplicates] [--crossdups] [--autogen] [--multiproject]

[--filecount] [--wide] [--details] [ --effort F E ] [ --schedule F E ] [

--personcost cost ] [ --overhead overhead ] [ --addlang language ] [

--addlangall ] [--] directories

--cached

跳过计算过程,直接使用上次结果

参数

描述

–multiproject

如果该文件夹包括一系列的子文件夹,而它们中的每一个都是相对独立开发的不同的项目,那么使用”–multiproject”选项,评估将会正确的考虑到这一点

–filecount

显示文件数目而非代码行数

–details

显示每个源文件的详细信息

–duplicates

算上所有重复的(默认情况下如果文件有相同的内容,则只算一个)

–crossdups

如果顶目录包含几个不同的项目,并且你想把不同的项目下重复的文件在每个项目中都算上一次,则使用该选项

1.3 转换成html文件

--------------------------------------------------------------------------------

有一个sloc2html.py可以把生成的结果转换为带图形统计结果的html文件. 缺点是对中文支持不好

例如:

sloccount --wide --multiproject SourceDirectory >result.txt

sloc2html.py result.txt >result.html

再打开result.html即可看到结果形如:

下载地址 http://www.dwheeler.com/sloccount/sloc2html.py.txt

输出样例 http://www.dwheeler.com/sloccount/sloc2html-example.html

wget http://www.dwheeler.com/sloccount/sloc2html.py.txt -O sloc2html.py

sloc2html.py文件源代码如下

#!/usr/bin/env python

# Written by Rasmus Toftdahl Olesen <rto@pohldata.dk>

# Modified slightly by David A. Wheeler

# Released under the GNU General Public License v. 2 or higher

from string import *

import sys

NAME = "sloc2html"

VERSION = "0.0.2"

if len(sys.argv) != 2:

print "Usage:"

print "\t" + sys.argv[0] + " <sloc output file>"

print "\nThe output of sloccount should be with --wide and --multiproject formatting"

sys.exit()

colors = { "python" : "blue",

"ansic" : "yellow",

"perl" : "purple",

"cpp" : "green",

"sh" : "red",

"yacc" : "brown",

"lex" : "silver"

# Feel free to make more specific colors.

"ruby" : "maroon",

"cs" : "gray",

"java" : "navy",

"ada" : "olive",

"lisp" : "fuchsia",

"objc" : "purple",

"fortran" : "purple",

"cobol" : "purple",

"pascal" : "purple",

"asm" : "purple",

"csh" : "purple",

"tcl" : "purple",

"exp" : "purple",

"awk" : "purple",

"sed" : "purple",

"makefile" : "purple",

"sql" : "purple",

"php" : "purple",

"modula3" : "purple",

"ml" : "purple",

"haskell" : "purple"

}

print "<html>"

print "<head>"

print "<title>Counted Source Lines of Code (SLOC)</title>"

print "</head>"

print "<body>"

print "<h1>Counted Source Lines of Code</h1>"

file = open ( sys.argv[1], "r" )

print "<h2>Projects</h2>"

line = ""

while line != "SLOC\tDirectory\tSLOC-by-Language (Sorted)\n":

line = file.readline()

print "<table>"

print "<tr><th>Lines</th><th>Project</th><th>Language distribution</th></tr>"

line = file.readline()

while line != "\n":

num, project, langs = split ( line )

print "<tr><td>" + num + "</td><td>" + project + "</td><td>"

print "<table width=\"500\"><tr>"

for lang in split ( langs, "," ):

l, n = split ( lang, "=" )

print "<td bgcolor=\"" + colors[l] + "\" width=\"" + str( float(n) / float(num) * 500 ) + "\">" + l + "=" + n + " (" + str(int(float(n) / float(num) * 100)) + "%)</td>"

print "</tr></table>"

print "</td></tr>"

line = file.readline()

print "</table>"

print "<h2>Languages</h2>"

while line != "Totals grouped by language (dominant language first):\n":

line = file.readline()

print "<table>"

print "<tr><th>Language</th><th>Lines</th></tr>"

line = file.readline()

while line != "\n":

lang, lines, per = split ( line )

lang = lang[:-1]

print "<tr><td bgcolor=\"" + colors[lang] + "\">" + lang + "</td><td>" + lines + " " + per + "</td></tr>"

line = file.readline()

print "</table>"

print "<h2>Totals</h2>"

while line == "\n":

line = file.readline()

print "<table>"

print "<tr><td>Total Physical Lines of Code (SLOC):</td><td>" + strip(split(line,"=")[1]) + "</td></tr>"

line = file.readline()

print "<tr><td>Estimated development effort:</td><td>" + strip(split(line,"=")[1]) + " person-years (person-months)</td></tr>"

line = file.readline()

line = file.readline()

print "<tr><td>Schedule estimate:</td><td>" + strip(split(line,"=")[1]) + " years (months)</td></tr>"

line = file.readline()

line = file.readline()

print "<tr><td>Total estimated cost to develop:</td><td>" + strip(split(line,"=")[1]) + "</td></tr>"

print "</table>"

file.close()

print "Please credit this data as \"generated using 'SLOCCount' by David A. Wheeler.\"\n"

print "</body>"

print "</html>"

百度统计是百度推出的一款专业网站流量分析工具,能够告诉您访客是如何找到并浏览您的网站,以及如何改善访客在您网站上的使用体验,帮助您让更多的访客成为客户,不断提升网站的投资回报率。

百度统计提供了几十种图形化报告,全程跟踪访客的行为路径,并且帮助监控各种网络媒介推广效果,让您及时了解哪些关键词、哪些创意的效果最好。同时,百度统计集成百度推广数据,帮助您及时了解百度推广效果并优化推广方案。

基于百度强大的技术实力,百度统计提供了丰富的数据指标,系统稳定,功能强大但 *** 作简易。登陆系统后按照系统说明完成代码添加,百度统计便可马上收集数据,为您提高投资回报率提供决策依据。

更多问题,请到推广客户端帮助频道查询:http://yingxiao.baidu.com/support/editor/index.html

了解更多百度推广信息,请查看:http://e.baidu.com/


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8697190.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-20
下一篇2023-04-20

发表评论

登录后才能评论

评论列表(0条)

    保存