webstorm代码行数统计_【Rust每周一库】Tokei 统计代码行数等信息的实用工具
Tokei是一个按语言统计代码行数等统计信息的工具。其实这些信息还是非常有用的,首先程序猿可以用它来估计别人的实力或者观察自己实力成长的速度(神马,行数论英雄么?)。其次,管理人员可以用它来估计工程的进度和预算(据说一个程序猿一天写不出100行代码?)。最后,其实在看新代码的时候先看下这些数据,也有助于对代码的理解(说不定最长的文件就是核心逻辑的所在处呢?)。所以,大家以后没事多tokei一下呀。
好了不废话,首先安装的话直接用cargo就好了:
$ cargo install tokei
我们下面以cpython的源码为例,看下tokei具体如何使用
直接使用tokei+目录名就可以得到关于目录下按语言分类的文件数、代码行数(包括代码和注释)和空行数。
$ tokei cpython/------------------------------------------------------------------------------- Language Files Lines Code Comments Blanks------------------------------------------------------------------------------- Assembly 6 1978 1723 26 229 Autoconf 13 4493 2708 939 846 Batch 32 2120 1762 7 351 C 317 421274 320386 48459 52429 C Header 384 181963 156295 10240 15428 C Shell 1 25 11 5 9 C++ 5 4223 3241 256 726 CSS 1 6 0 4 2 D 5 83 74 1 8 Fish 1 64 38 13 13 HTML 10 2045 1926 11 108 INI 1 171 102 27 42 JavaScript 2 209 177 14 18 JSON 6 68 68 0 0 Lisp 1 692 502 81 109 Makefile 4 339 242 40 57 Markdown 2 47 47 0 0 Module-Definition 8 1400 1363 14 23 MSBuild 10 995 824 80 91 Objective-C 7 794 635 61 98 PowerShell 6 600 345 171 84 Prolog 1 24 24 0 0 Python 1943 814052 636398 58030 119624 ReStructuredText 645 322625 322625 0 0 Shell 5 797 487 191 119 SVG 8 8 8 0 0 Plain Text 149 89499 89499 0 0 TOML 1 4 4 0 0 VBScript 1 1 0 1 0 Visual Studio Pro| 48 6276 6223 8 45 Visual Studio Sol| 2 1472 1471 0 1 XSL 1 5 5 0 0 XML 58 417 338 7 72------------------------------------------------------------------------------- Total 3684 1858769 1549551 118686 190532-------------------------------------------------------------------------------
使用-s可以针对某个列排序,比如如果我们要针对代码行数排序
$ tokei cpython/ -s code------------------------------------------------------------------------------- Language Files Lines Code Comments Blanks------------------------------------------------------------------------------- Python 1943 814052 636398 58030 119624 ReStructuredText 645 322625 322625 0 0 C 317 421274 320386 48459 52429 C Header 384 181963 156295 10240 15428 Plain Text 149 89499 89499 0 0 Visual Studio Pro| 48 6276 6223 8 45 C++ 5 4223 3241 256 726 Autoconf 13 4493 2708 939 846 HTML 10 2045 1926 11 108 Batch 32 2120 1762 7 351 Assembly 6 1978 1723 26 229 Visual Studio Sol| 2 1472 1471 0 1 Module-Definition 8 1400 1363 14 23 MSBuild 10 995 824 80 91 Objective-C 7 794 635 61 98 Lisp 1 692 502 81 109 Shell 5 797 487 191 119 PowerShell 6 600 345 171 84 XML 58 417 338 7 72 Makefile 4 339 242 40 57 JavaScript 2 209 177 14 18 INI 1 171 102 27 42 D 5 83 74 1 8 JSON 6 68 68 0 0 Markdown 2 47 47 0 0 Fish 1 64 38 13 13 Prolog 1 24 24 0 0 C Shell 1 25 11 5 9 SVG 8 8 8 0 0 XSL 1 5 5 0 0 TOML 1 4 4 0 0 CSS 1 6 0 4 2 VBScript 1 1 0 1 0------------------------------------------------------------------------------- Total 3684 1858769 1549551 118686 190532-------------------------------------------------------------------------------
使用-t可以过选择想要的语言
$ tokei cpython/ -t=Python------------------------------------------------------------------------------- Language Files Lines Code Comments Blanks------------------------------------------------------------------------------- Python 1943 814052 636398 58030 119624------------------------------------------------------------------------------- Total 1943 814052 636398 58030 119624-------------------------------------------------------------------------------
也可以同时选择多个语言,使用逗号分开
$ tokei cpython/ -t=Python,C++------------------------------------------------------------------------------- Language Files Lines Code Comments Blanks------------------------------------------------------------------------------- C++ 5 4223 3241 256 726 Python 1943 814052 636398 58030 119624------------------------------------------------------------------------------- Total 1948 818275 639639 58286 120350-------------------------------------------------------------------------------
使用-e可以过滤掉不想要进入统计的文件名类型,比如说我们过滤掉所有拓展名是c的文件
$ tokei cpython/ -e *.c------------------------------------------------------------------------------- Language Files Lines Code Comments Blanks------------------------------------------------------------------------------- Assembly 6 1978 1723 26 229 Autoconf 13 4493 2708 939 846 Batch 32 2120 1762 7 351 C Header 384 181963 156295 10240 15428 C Shell 1 25 11 5 9 C++ 5 4223 3241 256 726 CSS 1 6 0 4 2 D 5 83 74 1 8 Fish 1 64 38 13 13 HTML 10 2045 1926 11 108 INI 1 171 102 27 42 JavaScript 2 209 177 14 18 JSON 6 68 68 0 0 Lisp 1 692 502 81 109 Makefile 4 339 242 40 57 Markdown 2 47 47 0 0 Module-Definition 8 1400 1363 14 23 MSBuild 10 995 824 80 91 Objective-C 7 794 635 61 98 PowerShell 6 600 345 171 84 Prolog 1 24 24 0 0 Python 1943 814052 636398 58030 119624 ReStructuredText 645 322625 322625 0 0 Shell 5 797 487 191 119 SVG 8 8 8 0 0 Plain Text 149 89499 89499 0 0 TOML 1 4 4 0 0 VBScript 1 1 0 1 0 Visual Studio Pro| 48 6276 6223 8 45 Visual Studio Sol| 2 1472 1471 0 1 XSL 1 5 5 0 0 XML 58 417 338 7 72------------------------------------------------------------------------------- Total 3367 1437495 1229165 70227 138103-------------------------------------------------------------------------------
也可以使用--files使得统计按照文件显示而不是合并显示。因为cpython的文件太多,我们选取一个子目录看看:
$ tokei cpython/Parser/ --files------------------------------------------------------------------------------------------------------------------------- Language Files Lines Code Comments Blanks------------------------------------------------------------------------------------------------------------------------- C 9 3860 3158 347 355------------------------------------------------------------------------------------------------------------------------- cpython/Parser/listnode.c 70 60 2 8 cpython/Parser/token.c 243 233 3 7 cpython/Parser/myreadline.c 380 295 37 48 cpython/Parser/parsetok.c 495 414 25 56 cpython/Parser/grammar1.c 47 38 3 6 cpython/Parser/parser.c 462 336 61 65 cpython/Parser/acceler.c 123 105 10 8 cpython/Parser/tokenizer.c 1852 1550 163 139 cpython/Parser/node.c 188 127 43 18------------------------------------------------------------------------------------------------------------------------- C Header 2 137 101 15 21------------------------------------------------------------------------------------------------------------------------- cpython/Parser/parser.h 49 37 2 10 cpython/Parser/tokenizer.h 88 64 13 11------------------------------------------------------------------------------------------------------------------------- Python 10 2898 2369 111 418------------------------------------------------------------------------------------------------------------------------- cpython/Parser/asdl.py 376 281 41 54 cpython/Parser/asdl_c.py 1417 1224 17 176 cpython/Parser/pgen/automata.py 371 280 20 71 cpython/Parser/pgen/token.py 38 22 4 12 cpython/Parser/pgen/pgen.py 305 255 8 42 cpython/Parser/pgen/metaparser.py 152 115 21 16 cpython/Parser/pgen/__init__.py 0 0 0 0 cpython/Parser/pgen/grammar.py 147 124 0 23 cpython/Parser/pgen/keywordgen.py 59 42 0 17 cpython/Parser/pgen/__main__.py 33 26 0 7------------------------------------------------------------------------------------------------------------------------- Total 21 6895 5628 473 794-------------------------------------------------------------------------------------------------------------------------
最后也可以把刚才这些组合起来,比如
$ tokei cpython/Parser/ --files -t=Python -s code -e __init__.py------------------------------------------------------------------------------------------------------------------------- Language Files Lines Code Comments Blanks------------------------------------------------------------------------------------------------------------------------- Python 9 2898 2369 111 418------------------------------------------------------------------------------------------------------------------------- cpython/Parser/asdl_c.py 1417 1224 17 176 cpython/Parser/asdl.py 376 281 41 54 cpython/Parser/pgen/automata.py 371 280 20 71 cpython/Parser/pgen/pgen.py 305 255 8 42 cpython/Parser/pgen/grammar.py 147 124 0 23 cpython/Parser/pgen/metaparser.py 152 115 21 16 cpython/Parser/pgen/keywordgen.py 59 42 0 17 cpython/Parser/pgen/__main__.py 33 26 0 7 cpython/Parser/pgen/token.py 38 22 4 12------------------------------------------------------------------------------------------------------------------------- Total 9 2898 2369 111 418-------------------------------------------------------------------------------------------------------------------------
最后,其实tokei是个日语词,意思是钟表,也许作者是在暗示这款工具运行地速度飞快吧。实际上在github中有和其他类似工具(Go的scc以及同样用Rust写的loc)的比较。但比较的版本有些老了。
我们就自己跑一下看看统计当前Rust官方代码库的成绩(CPU时间)吧:
tokei 1.5±0.1s
scc 2.3±1.0s
loc 3.8±0.4s
tokei是不是很优秀?不过也别太当真啦,反正都是一眨眼的事情。没事多tokei一下你的代码吧~
webstorm代码行数统计_【Rust每周一库】Tokei 统计代码行数等信息的实用工具相关推荐
- java 方法数统计_利用Java简单实现一个代码行数统计器方法实例
前言 哈喽,我是小黑, 最近学了java的输入输出流后一直心痒痒,总想找一点事情来做,所以用java代码来实现了一下统计代码的所有行数,看一下我上大学以来到底打了多少行. 先附上实现代码吧! pack ...
- python正则匹配统计_用Python正则表达式搜索统计命令行管道中的所有数字
由于最近经常要对庞大的Android代码进行统计,于是写了一个Python脚本,可以把命令行中输出的所有管道数据中的数字找出来,并进行累加等操作,使用起来非常快捷高效. 例如,我希望统计Android ...
- linux 统计_聊聊 Linux 的内存统计
写在前面 本文主要分析 Linux 系统内存统计的一些指标以及进程角度内存使用监控的一些方法. 开始阅读这篇文章前,请先简单阅读下面的几篇文章. <进程眼中的线性地址空间> <线程眼 ...
- el-table 行背景颜色_使用HTML添加表格4(行颜色与表格嵌套)——零基础自学网页制作
行颜色设置的简便方法 昨天我们在<使用HTML添加表格3(间距与颜色)--零基础自学网页制作>(目录在结尾)中学习了设置单元格以及其中内容的空间间距和背景颜色. 其中添加列向单元格背景颜色 ...
- jieba库词频统计_运用jieba库进行词频统计
Python第三方库jieba(中文分词) 一.概述 jieba是优秀的中文分词第三方库 - 中文文本需要通过分词获得单个的词语 - jieba是优秀的中文分词第三方库,需要额外安装 - jieba库 ...
- Java代码制作ie浏览器_[Java教程]判断IE浏览器代码实例
[Java教程]判断IE浏览器代码实例 0 2015-08-12 01:00:19 判断IE浏览器代码实例: 由于当下浏览器类型众多,并且对同一段代码的解读有时候各有不同,所以要根据浏览器的类型来执行 ...
- sklearn库安装_没有依赖库也能跑机器学习模型!推荐一个强大工具m2cgen
晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI m2cgen(Model 2 Code Generator)是一个轻量级代码生成器,它可以将训练好的机器学习模型转换成无需依赖库的本地代码. ...
- mysql影响行数解析_对PHP函数mysqli_affected_rows的作用行数返回值的分析
这篇文章主要介绍了PHP中mysqli_affected_rows作用行数返回值,实例分析了普通模式与oop模式的用法,具有一定的参考借鉴价值,需要的朋友可以参考下 本文实例分析了PHP中mysqli ...
- python目标识别代码_利用ImageAI库只需几行python代码超简实现目标检测
什么是目标检测 目标检测关注图像中特定的物体目标,需要同时解决解决定位(localization) + 识别(Recognition).相比分类,检测给出的是对图片前景和背景的理解,我们需要从背景中分 ...
最新文章
- SQL-语句实现九九乘法表
- java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x12问题
- IIS,apche,nginx,301域名重定向设置
- spd耗材管理流程图_国药器械山东公司助力济宁医学院附属医院SPD项目成功启动...
- Flex 给PopUpButton 设置皮肤
- 服务器和客户端Socket单向通信例子
- 利尔达NB-IOT模块对接移动onenet平台步骤
- 安装恩智浦IDE与配置SDK和烧录程序
- GCC和C99标准中inline
- 怎样设定计算机屏幕锁定时间,电脑屏幕锁屏时间怎么设置
- 如何用CMD查看电脑详细配置
- import * as用法
- 饭后的不良习惯,看看你中了几招?
- 【COCOS2DX-游戏开发之七】添加启动数字输入法的功能
- python使用spark_如何在Python中编写简单代码,并且速度超越Spark?
- 玩转华为数据中心交换机系列 | 配置STP功能示例
- 排序(堆排序,快速排序,归并排序)
- 图形聚类算法:MCL
- 华硕h410csm怎么开启_昂达h410主板装win7系统及bios设置教程(首发支持10代cpu)
- echarts 多个水球图简单移动动画demo