投稿

8月, 2020の投稿を表示しています

Line of Code (LoC) の計測

LoCの計測で一番簡単だと思われるのは次のような方法である。find ./src -type f -name '*.c' -o -name '*.h' | xargs wc -lこの例では ./src ディレクトリに含まれる C 言語のソースファイルとヘッダファイルについて全て wc(1) に食わせて行数を出力する,といったことを行なっている。しかしこれでは,プロジェクトで利用する言語が増える度に find(1) のオプションを調整しなければならないし,コード内の空行やコメント行を全く考慮しない。clocそこで,実は cloc という便利な LoC 計測ツールがあるらしい。https://github.com/AlDanial/clocこのコマンドでは,単純にプロジェクトのディレクトリを引数として渡すと,どういう言語がどのくらい使われており,それぞれに含まれる空行とコメントはどのぐらいか,といったことを一覧表示してくれる。しかし,私はLinux kernelにおける各サブシステムがコード全体のうちどのぐらいを占めているかを知りたかったため,次のように cloc を実行した。cd /usr/src/linux/ for dir in $(find . -maxdepth 1 -type d ! \( -name '.*' -o -name 'Documentation' -o -name 'LICENSES' -o -name 'samples' -o -name 'scripts' -o -name 'tools' \)); do echo $dir cloc $dir done > ~/linux_loc.txt すると linux_loc.txt には次のような出力が得られる。 ./arch 16005 text files. 15902 unique files. 4299 files ignored. github.com/AlDanial/cloc v 1.72 T=28.79 s (406.7 files/s, 90104.3 lines/s) ------------------…