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
Goビルドを理解し、 CI/CDの高速化に挑む
Search
sato-shin
March 27, 2026
Technology
580
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Goビルドを理解し、 CI/CDの高速化に挑む
sato-shin
March 27, 2026
More Decks by sato-shin
See All by sato-shin
DateComponentsと仲良くなる
satoshin
3
3.8k
Bitriseのビルド回数が 10倍以上になって変わったコト
satoshin
1
480
Pull Request Trigger について ~Expose for Pull Request?~
satoshin
1
160
User Notification for UX!
satoshin
0
200
Using various views on Notification Content app extension
satoshin
2
1.2k
Getting step count on iOS
satoshin
4
3.3k
Other Decks in Technology
See All in Technology
AI・HPC開発を支えるGPU環境の新しい選択肢 液冷GPUシステム「AquSys」の取り組み
gpuunite_official
0
240
わたしが知り合いゼロの勉強会に 行けるようになるまで
r5ni4
2
660
現場回帰したデータエンジニアが考える AI 時代のキャリア開発 / Career Development in the Age of AI Perspectives from a Hands-on Data Engineer
medley
0
330
【Aiming】共通基盤なのに「共通化しない」課金・認証基盤「LINK」が選び取ったシングルテナント戦略と運用の秘訣
saikeda
0
200
Bill One 開発エンジニア 紹介資料
sansan33
PRO
7
20k
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
12
85k
作って理解するCoding Agent 〜フレームワークに頼らないピュア Python での実装〜
takapy
4
1.2k
医療の現場を変革に挑戦した半年間の軌跡 - PythonとAIで現場を変える / From Code to Care
soudai
PRO
1
610
dbt in Microsoft Fabric
ryomaru0825
0
250
AI画像認識を活用したゲーム内決済処理検証の自動化
gree_tech
PRO
0
460
【書籍出版記念】 10周回って、エージェント開発は RAGがすべてだった。〜RAGの歴史と開発現場で見えた実践知〜
akiratameto
20
7.3k
8bit CPU 2026
koba789
7
2.8k
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
The agentic SEO stack - context over prompts
schlessera
0
870
Building Applications with DynamoDB
mza
96
7.2k
[SF Ruby Conf 2025] Rails X
palkan
2
1.3k
Being A Developer After 40
akosma
91
590k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
480
Statistics for Hackers
jakevdp
799
230k
Done Done
chrislema
186
16k
Transcript
TBUPTIJO (PϏϧυΛཧղ͠ɺ $*$%ͷߴԽʹΉ NJJWFͰˠΛ࣮ݱͨ͠վળࣄྫ
NJJWFͷ$*$%ͷྲྀΕ
NJJWFͷ$*$%ͷྲྀΕʢվળલʣ 6OJU5FTU %FQMPZ UP"84&$4 &&5FTU -JOU
#VJME ߹ܭ
NJJWFͷ$*$%ͷྲྀΕʢվળલʣ 6OJU5FTU %FQMPZ UP"84&$4 &&5FTU -JOU
#VJME ߹ܭ
NJJWFͷ$*$%ͷྲྀΕʢվળલʣ 6OJU5FTU ඵ %FQMPZ UP"84&$4 &&5FTU -JOU
#VJME ඵ ߹ܭ
NJJWFͷ$*$%ͷྲྀΕʢվળલʣ 6OJU5FTU ඵ %FQMPZ UP"84&$4 &&5FTU -JOU
#VJME ඵ ͜͜ʹࢸΔ·Ͱ
·ͣ(PͷϏϧυΛͪΌΜͱΖ͏ʂ $ go build
(PͷϏϧυͷಛ w Ϗϧυޙͷ୯ҰόΠφϦͰಈ͖ɺ࣮ߦڥʹ(PͷΠϯετʔϧෆཁ w ΫϩείϯύΠϧʹΑΓɺ$*$%ͷઃఆָ͕ w ϏϧυΩϟογϡͷػߏ͕Έࠐ·Ε͍ͯΔ
(PͷϏϧυͷಛ w Ϗϧυޙͷ୯ҰόΠφϦͰಈ͖ɺ࣮ߦڥʹ(PͷΠϯετʔϧෆཁ w ΫϩείϯύΠϧʹΑΓɺ$*$%ͷઃఆָ͕ w ϏϧυΩϟογϡͷػߏ͕Έࠐ·Ε͍ͯΔ
࣮ߦڥʹ(Pෆཁ 04 +BWB7JSUVBM.BDIJOF KBSϑΝΠϧ 04 (Pͷ୯ҰόΠφϦ ࣮ߦϑΝΠϧ
࣮ߦڥʹ(Pෆཁ w ґଘ͢Δͷ͕গͳ͍ͷͰ w ཧָ͕ w ηΩϡΞ w αʔόʔͷ্ཱ͕ͪΓ͕ૣ͍ w
࣮ߦɾϝϞϦফඅྔͰ༗ར 04 (Pͷ୯ҰόΠφϦ ࣮ߦϑΝΠϧ
(PͷϏϧυͷಛ w Ϗϧυޙͷ୯ҰόΠφϦͰಈ͖ɺ࣮ߦڥʹ(PͷΠϯετʔϧෆཁ w ΫϩείϯύΠϧʹΑΓɺ$*$%ͷઃఆָ͕ w ϏϧυΩϟογϡͷػߏ͕Έࠐ·Ε͍ͯΔ
ΫϩείϯύΠϧ͕Մೳ $*ڥ6CVOUV $ GOOS=windows \ GOARCH=amd64 \ go build -o
app ࣮ߦڥ8JOEPXTTFSWFSBNE BQQFYF BQQFYF $PQZ
(PͷϏϧυͷಛ w ΫϩείϯύΠϧʹΑΓɺ$*$%ͷઃఆָ͕ w Ϗϧυޙͷ୯ҰόΠφϦͰಈ͖ɺ࣮ߦڥʹ(PͷΠϯετʔϧෆཁ w ϏϧυΩϟογϡͷػߏ͕Έࠐ·Ε͍ͯΔ $ go build
(PͷϏϧυϑϩʔͷ֓ཁ ґଘؔͷղܾ ίϯύΠϧ $ go tool compile ύοέʔδຖʹPCKੜ ϦϯΫ $
go tool link 0CKΛ౷߹͠ɺ ࣮ߦϑΝΠϧΛੜ HPͷ࣮ߦϑΝΠϧ
(PͷϏϧυϑϩʔͷ֓ཁ ґଘؔͷղܾ ίϯύΠϧ $ go tool compile ύοέʔδຖʹPCKੜ ϦϯΫ $
go tool link 0CKΛ౷߹͠ɺ ࣮ߦϑΝΠϧΛੜ HPͷ࣮ߦϑΝΠϧ ύοέʔδຖͷPCK͕Ωϟογϡ͞Ε มߋ͕ͳ͍ύοέʔδͷίϯύΠϧεΩοϓ
(PͷϏϧυͷಛ w ΫϩείϯύΠϧʹΑΓɺ$*$%ͷઃఆָ͕ w Ϗϧυޙͷ୯ҰόΠφϦͰಈ͖ɺ࣮ߦڥʹ(PͷΠϯετʔϧෆཁ w ϏϧυΩϟογϡͷػߏ͕Έࠐ·Ε͍ͯΔ
$*$%Λૣ͘͢Δखஈͷ ௐࠪ։࢝
(PϏϧυͷجຊతͳߴԽख๏ w $*ͰϏϧυΩϟογϡΛར༻͢Δ w $*ͰϞδϡʔϧΩϟογϡΛར༻͢Δ w ར༻͍ͯ͠ͳ͍ίʔυΛআ͢Δ w ύοέʔδͷׂΛ࠷దԽ͢Δ
(PϏϧυͷجຊతͳߴԽख๏ w $*ͰϏϧυΩϟογϡΛར༻͢ΔˠճҎ߱͘ͳΔ w $*ͰϞδϡʔϧΩϟογϡΛར༻͢ΔˠճҎ߱͘ͳΔ w ར༻͍ͯ͠ͳ͍ίʔυΛআ͢Δˠௐࠪ͠ɺશମͷʹຬͨͳ͍ w ύοέʔδͷׂΛ࠷దԽ͢Δˠ͕͔͔࣌ؒΓ͗͢ΔͨΊɺݟૹΓ
(PϏϧυͷجຊతͳߴԽख๏ w $*ͰϏϧυΩϟογϡΛར༻͢ΔˠճҎ߱͘ͳΔ w $*ͰϞδϡʔϧΩϟογϡΛར༻͢ΔˠճҎ߱͘ͳΔ ΩϟογϡΛΘͳ͍߹Ͱ ͔͔Δͷײʹ͢Δ🤔
ͱ͍͏ͷɺ ։ൃ࣌ͷ$ go run Ͱؾͮͣ͘
ͳΒɺܭଌͩʂ
NJJWFͷϦϙδτϦߏͷ֓ཁ EPNBJONPEFM QBDLBHF ڞ௨ίϯϙʔωϯτ ɾɾɾ CBUDI"DNE NBJOQBDLBHF CBUDI#DNE NBJOQBDLBHF 8FC"1*TFSWFS
NBJOQBDLBHF
NJJWFͷϦϙδτϦߏͷ֓ཁ EPNBJONPEFM QBDLBHF ڞ௨ίϯϙʔωϯτ ɾɾɾ 8FC"1*TFSWFS NBJOQBDLBHF CBUDI"DNE NBJOQBDLBHF CBUDI#DNE
NBJOQBDLBHF ࠷େ͖͍8FC"1*TFSWFSΛ ܭଌͷλʔήοτͱ͢Δ
ϩʔΧϧͰϏϧυ࣌ؒΛܭଌͯ͠ΈΔ $ go clean -cache $ time go build
ϩʔΧϧͰϏϧυ࣌ؒΛܭଌͯ͠ΈΔ $ go clean -cache $ time go build go
build 65.29s
ϩʔΧϧͰϏϧυ࣌ؒΛܭଌͯ͠ΈΔ $ go clean -cache $ time go build go
build 65.29s 👍
NJJWFͷϦϙδτϦߏͷ֓ཁ EPNBJONPEFM QBDLBHF ڞ௨ίϯϙʔωϯτ ɾɾɾ CBUDI"DNE NBJOQBDLBHF CBUDI#DNE NBJOQBDLBHF 8FC"1*TFSWFS
NBJOQBDLBHF શମΛܭଌͷλʔήοτͱ͢Δ
ϩʔΧϧͰશମͷϏϧυ࣌ؒΛܭଌͯ͠ΈΔ $ go clean -cache $ time ./build_all.sh
ϩʔΧϧͰશମͷϏϧυ࣌ؒΛܭଌͯ͠ΈΔ $ go clean -cache $ time ./build_all.sh ./build_all.sh 265.91s
ϩʔΧϧͰશମͷϏϧυ࣌ؒΛܭଌͯ͠ΈΔ $ go clean -cache $ time ./build_all.sh ./build_all.sh 265.91s
🤔 ඵ
NJJWFͷϦϙδτϦߏͷ֓ཁ EPNBJONPEFM QBDLBHF ڞ௨ίϯϙʔωϯτ ɾɾɾ CBUDI"DNE NBJOQBDLBHF CBUDI#DNE NBJOQBDLBHF 8FC"1*TFSWFS
NBJOQBDLBHF #BUDIܥશମͷίʔυྔͷ ະຬ
NJJWFͷϦϙδτϦߏͷ֓ཁ EPNBJONPEFM QBDLBHF ڞ௨ίϯϙʔωϯτ ɾɾɾ CBUDI"DNE NBJOQBDLBHF CBUDI#DNE NBJOQBDLBHF 8FC"1*TFSWFS
NBJOQBDLBHF ڞ௨QBDLBHFΩϟογϡ͔Β ϏϧυεΩοϓ͢Δͣ
7FSCPTFPQUJPOͰಈ࡞Λ֬ೝͯ͠ΈΔ $ go build -v // compileதͷύοέʔδ͕දࣔ͞ΕΔ
7FSCPTFPQUJPOͰಈ࡞Λ֬ೝͯ͠ΈΔ $ go clean -cache $ ./build_all_verbose.sh
7FSCPTFPQUJPOͰಈ࡞Λ֬ೝͯ͠ΈΔ $ go clean -cache $ ./build_all_verbose.sh … math math
math …
͋Εʁ ෳճίϯύΠϧͯ͠Δ🤔
൜ਓ͍ͭ͜
$ go buildΛฒྻͰΒ͍ͤͯͨͨΊ ϏϧυΩϟογϡ͕ޮ͍͍ͯͳ͔ͬͨ
मਖ਼൛ͰϏϧυ࣌ؒΛܭଌͯ͠ΈΔ $ go clean -cache $ time ./build_all.sh ./build_all.sh 77.50s
☺
ղܾ👍
ͪͳΈʹ6OJU5FTUͷํͷվળ
6OJU5FTUͷվળ w ͬͱ͕͔͔͍࣌ؒͬͯͨͷ%#ଓͷςετ w %"5"%0(HPUYECΛಋೖͨ͠ ˠඵʹʂ
·ͱΊ w ͿͬͪΌ͚ʮॳظઃఆ࣌ͷϛεʯ w ਪଌ͢ΔͳɺܭଌͤΑ w (PͷϏϧυ͍͢͝ʂ
࠷ޙʹNJJWFʹ͍ͭͯͷհ
w ΧʔυYΞϓϦͰΧϯλϯརްੜ w αʔόʔ(P w 8FC3FBDU w ϞόΠϧ3FBDU/BUJWF w ࠾༻ڧԽதͰ͢
ɹ8FBSFIJSJOH