Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
gocloc
Search
Hideo Hattori
January 18, 2019
Technology
570
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
gocloc
https://github.com/hhatto/gocloc
Hideo Hattori
January 18, 2019
More Decks by Hideo Hattori
See All by Hideo Hattori
RustとPython
hhatto
4
2.6k
PyCon APAC 2013 LT
hhatto
0
86
PHP Kansai 2013 LT
hhatto
0
100
Other Decks in Technology
See All in Technology
WebGIS AI Agentの紹介
_shimizu
0
550
FPC(フレキシブル)基板にZephyr実装してみた。
iotengineer22
0
170
2026-06-24_人とAIの責務分離に基づく開発プロセスの提案.pdf
takahiromatsui
0
120
4人目のSREはAgent
tanimuyk
0
150
AWS Security Agent といっしょに脅威モデリングをやってみよう
amarelo_n24
1
210
データレイクの「見えない問題」を可視化する
sansantech
PRO
1
200
螺旋型キャリアの生存戦略 / kinoko-conf2026
rakus_dev
1
960
Multi-Agent並列開発を 安全に回すための技術 / Technology for Safely Multi-Agent Parallel Development
tooppoo
0
160
フルAIで個人開発して学んだあれこれ / yuruai vol.1
isaoshimizu
0
110
AIチャットの改善から見えた、良いAI体験とは / What Constitutes a Good AI Experience: Insights from Improving AI Chat
kubode
0
120
從開發到部署全都交給 AI:實作 AI 驅動的自動化流程
appleboy
0
160
Deep Data Security 機能解説
oracle4engineer
PRO
2
110
Featured
See All Featured
The Curse of the Amulet
leimatthew05
2
13k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
330
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
480
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
170
RailsConf 2023
tenderlove
30
1.5k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
170
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
Transcript
gocloc Umeda.go 2019 Winter 2019.01.18
whoami Hideo Hattori (hhatto) 関西圏でソフトウェアエンジニアをしています Rust, Python, Go, C などが好きです
今日お話しすること gocloc 作ってみました 得られた知見
gocloc とは?
gocloc ソースコードの行数を数えるツール Perl 実装のcloc がベース
モチベーション cloc が遅いので速いツールが欲しかった Rust でも同じような実装があったのでGo でもどれ くらい高速になるか試したかった
実行イメージ $ gocloc . Language files blank comment code
Go 13 164 42 1369 Markdown 1 20 0 149 Makefile 1 5 0 14 TOML 1 2 0 9 YAML 1 2 0 8 TOTAL 17 193 42 1549
主な機能 言語毎のファイル数/ 空行数/ コメント行数/ コード 行数の表示 ファイル毎のファイル数/ 空行数/ コメント行数/ コ
ード行数の表示( byfile オプション) 出力結果が多様なフォーマットに対応
得られた知見
得られた知見 goroutine 使わなくてもGo で実装するだけで動作 が軽量なツールが実装できる シングルバイナリでツールを提供できて配布が楽 ファイルの言語判定にはsrc-d/enry を使うとより高 速になる generaltso/linguist
がもともと存在していた が、src-d/enry に切り替えたところ高速に動作 した
得られた知見 boyter/scc というGo の別実装が登場 ファイルの言語判定が自前なので速い goroutine を使っていてgocloc よりさらに高速 gocloc もgoroutine
使えばさらに高速化できる かもしれない ATS という言語で実装されているPolyglot というツ ールが最速
合わせて読むと良いかもしれないリンク集 gocloc - fast cloc implementation | hexacosa.net 実装初期にまとめたgocloc 誕生の経緯など
Sloc Cloc and Code Revisited - Optimizing an already fast Go application | Ben E. C. Boyter Yet Another なGo で実装されたcloc クローン。 gocloc より速い!! Polyglot Is the Fastest Code-counting Tool Available Polyglot という最速のcloc クローン。ATS という 言語で実装されている
Thank you!!