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
How to achieve parallel compilation in Go 1.9
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Koki Ide
November 05, 2017
Technology
6
6.9k
How to achieve parallel compilation in Go 1.9
Go Conference 2017 @JP の発表資料です。
Koki Ide
November 05, 2017
Tweet
Share
More Decks by Koki Ide
See All by Koki Ide
次世代のコンテナランタイム!?gVisorのコードを読みながら理解してみる
niconegoto
6
6.3k
How Communicating Sequential Goroutines Work
niconegoto
2
19k
Let's Realm
niconegoto
0
500
Other Decks in Technology
See All in Technology
管理者向けGitHub Enterpriseの運用Tips紹介: 人にもAIにも優しいプラットフォームづくり
yuriemori
0
170
OCI Security サービス 概要
oracle4engineer
PRO
2
13k
クラウド × シリコンの Mashup - AWS チップ開発で広がる AI 基盤の選択肢
htokoyo
2
130
Fundraising Gala’s in 2026 What’s Changing & What Still Works
auctria
PRO
0
100
白金鉱業Meetup_Vol.22_Orbital Senseを支える衛星画像のマルチモーダルエンベディングと地理空間のあいまい検索技術
brainpadpr
2
260
組織全体で実現する標準監視設計
yuobayashi
2
270
S3はフラットである –AWS公式SDKにも存在した、 署名付きURLにおけるパストラバーサル脆弱性– / JAWS DAYS 2026
flatt_security
0
1.4k
[JAWS DAYS 2026]私の AWS DevOps Agent 推しポイント
furuton
0
130
元エンジニアPdM、IDEが恋しすぎてCursorに全業務を集約したら、スライド作成まで爆速になった話
doiko123
1
500
AIファーストを前提とした開発スタイルの変化
sbtechnight
0
220
類似画像検索モデルの開発ノウハウ
lycorptech_jp
PRO
4
1k
[AEON TECH HUB #24] お客様の長期的興味の理解に向けて
alpicola
0
120
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
34
9.2k
Abbi's Birthday
coloredviolet
2
5.2k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
Navigating Team Friction
lara
192
16k
GraphQLとの向き合い方2022年版
quramy
50
14k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
460
The Pragmatic Product Professional
lauravandoore
37
7.2k
It's Worth the Effort
3n
188
29k
Chasing Engaging Ingredients in Design
codingconduct
0
130
Between Models and Reality
mayunak
2
230
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Transcript
How to achieve parallel compilation in Go 1.9
,PLJ*EF !OJDPOFHPUP 'MBUU *OD TPQIPNPSFPGUIF6OJWFSTJUZPG5PLZP
ࠓͷΞδΣϯμ ɾίϯύΠϧͬͯͲ͏Δͷ͔ͬ͘͟Γ͓͞Β͍ ɾ(PͰ͍ͬͨQBSBMMFMJ[FDPNQJMBUJPOͷઆ໌ ɾ(Pͬͯ͢Β͍͠
1BSBMMFMJ[F$PNQJMBUJPO (P3FMFBTFE
1BSBMMFMJ[F$PNQJMBUJPO TZOD.BQ͚ͩ͡Όͳ͍Αʂʂ
1BSBMMFMJ[F$PNQJMBUJPO %POPUDPNNVOJDBUFCZTIBSJOHNFNPSZ JOTUFBE TIBSFNFNPSZCZDPNNVOJDBUJOH
%POPUDPNNVOJDBUFCZTIBSJOHNFNPSZ JOTUFBE TIBSFNFNPSZCZDPNNVOJDBUJOH 1BSBMMFMJ[F$PNQJMBUJPO
1BSBMMFMJ[F$PNQJMBUJPO σϑΥͰฒྻίϯύΠϧ (0$0/$633&/5$0.1*-"5*0/ɹ·ͨHDqBHTDͰແޮʹͰ͖Δ HDqBHTDHPSPVUJOFੜ͞Εͣฒߦੑ͕ͳ͍
$PODVSSFODZ.PEFM DNEDPNQJMFJOUFSOBMHD DNEDPNQJMFJOUFSOBMTTB DNEDPNQJMFJOUFSOBMTZOUBY ͋ͨΓΛಡΉ
1BSBMMFMJ[F$PNQJMBUJPO ͓͞Β͍ จࣈྻͱͯ͠ͷϓϩάϥϜ YZ ୯ޠྻͱͯ͠ͷϓϩάϥϜ *% lYz &2'MPBU
1-64*% lZz 5*.&4*OU நߏจ ࣈ۟ղੳ ߏจղੳ
1BSBMMFMJ[F$PNQJMBUJPO ͓͞Β͍ நߏจ நߏจ ܕͳͲͷՃใ Ծ໋ྩྻ ػցޠίʔυ ҙຯղੳ தؒίʔυੜɾ࠷దԽ ػցޠίʔυੜ
UZ Y U '3Z '3'3 '3'3 Y'3
ॳظԽ DNEDPNQJMFJOUFSOBMTZOUBYࣈ۟ղੳͱߏจղੳ DNEDPNQJMFJOUFSOBMHD"45ͷม ܕνΣοΫɺΤεέʔϓղੳɺΠϯϥΠϯల։ɺΫϩʔδϟʔॲཧɺࣜධՁͷॱং͚ʢPSEFSHPʣɺ࠷దԽʢXBMLHPʣ DNEDPNQJMFJOUFSOBMTTB44"ܗࣜͷม 44"ܗࣜͷ࠷దԽ 44"ܗ͔ࣜΒΞηϯϒϥͷม Ξηϯϒϥ͔ΒϚγϯίʔυͷม Ϛγϯίʔυɺ%8"3'γϯϘϧɺܕͱϦϑϨΫγϣϯͷใɺΤΫεϙʔτσʔλͳͲͷग़ྗ 1BSBMMFMJ[F$PNQJMBUJPO
$PNQJMFͷखॱ
DNEDPNQJMFJOUFSOBMTZOUBY"45ͷࣈ۟ղੳͱߏจղੳ 1BSBMMFMJ[F$PNQJMBUJPO $PNQJMFͷखॱ ˠطʹHPͰฒྻԽࡁΈ
DNEDPNQJMFJOUFSOBMHD"45ͷม 1BSBMMFMJ[F$PNQJMBUJPO $PNQJMFͷखॱ ˠআ༧ఆ
ࣜධՁͷॱং͚ʢPSEFSHPʣɺ࠷దԽʢXBMLHPʣ 1BSBMMFMJ[F$PNQJMBUJPO $PNQJMFͷखॱ ˠDPODVSSFODZTBGFʹ࣮ߦ͢Δ͜ͱ͕͘͠ɺͦ͜·Ͱ͘ͳ͍ͷͰύε
DNEDPNQJMFJOUFSOBMTTB44"ܗࣜͷม 44"ܗࣜͷ࠷దԽ 1BSBMMFMJ[F$PNQJMBUJPO $PNQJMFͷखॱ ˠϘτϧωοΫ
1BSBMMFMJ[F$PNQJMBUJPO $PNQJMFͷखॱ ϑΣʔζ͕શͯͷؔʹର͔ͯྃͯ͠͠Β͜ΕΒΛಉ࣌ʹ࣮ߦ͢Δɻ DNEDPNQJMFJOUFSOBMTTB44"ܗࣜͷม 44"ܗࣜͷ࠷దԽ 44"ܗ͔ࣜΒΞηϯϒϥͷม Ξηϯϒϥ͔ΒϚγϯίʔυͷม
1BSBMMFMJ[F$PNQJMBUJPO $PNQJMFͷखॱ Ϛγϯίʔυɺ%8"3'γϯϘϧɺܕͱϦϑϨΫγϣϯͷใɺΤΫεϙʔτσʔλͳͲͷग़ྗ ͜͜ͰϝιουϥούʔͳͲͷ৽͍͕ؔࣗ͠ಈੜ͞ΕɺdͷॲཧʹਐΉɻ ࠷ॳ͜ͷࣗಈੜͷؔʹؔͯ͠ฒྻίϯύΠϧ͞Ε͍ͯͳ͔͕ͬͨޙ $- ʹ࣮͞Εͨɻ
ɾฒྻίϯύΠϧΛ҆શʹߦ͏ͨΊͷNVUFYͷՃ ɾݱঢ়ͷίϯύΠϥͷάϩʔόϧมΛඇάϩʔόϧʹมߋ͢Δ ɾdͷ࡞ۀΛฒྻԽ ɾෳࡶͳؔΛઌʹίϯύΠϧ͢ΔΑ͏ʹ͢Δ ɾࣗಈੜ͞ΕͨؔฒྻίϯύΠϧ ύϑΥʔϚϯεˋ্ ɾͦͷଞࡉ͔͍࠷దԽमਖ਼ ZZFSSPSΛ͍ͬͯΔ෦Λ'BUBMGʹมߋ
ɾ$ͱ1ͷΛมԽͤͨ͞ࡍͷੳ 1BSBMMFMJ[F$PNQJMBUJPO ͬͨ͜ͱ
ɾฒྻίϯύΠϧΛ҆શʹߦ͏ͨΊͷNVUFYͷՃ ɾݱঢ়ͷίϯύΠϥͷάϩʔόϧมΛඇάϩʔόϧʹมߋ͢Δ ɾdͷ࡞ۀΛฒྻԽ ɾࣗಈੜ͞ΕͨؔฒྻίϯύΠϧ ύϑΥʔϚϯεˋ্ ɾͦͷଞࡉ͔͍࠷దԽमਖ਼ ZZFSSPSΛ͍ͬͯΔ෦Λ'BUBMGʹมߋ ɾ$ͱ1ͷΛมԽͤͨ͞ࡍͷੳ
1BSBMMFMJ[F$PNQJMBUJPO ͬͨ͜ͱ
1BSBMMFMJ[F$PNQJMBUJPO NVUFYͷՃ HDGVODTZNTNV HD"45͔Β44"ͷม࣌ɺ ύοέʔδݕࡧ࣌ʹ༻͞ΕΔ
1BSBMMFMJ[F$PNQJMBUJPO HDMBSHF4UBDL'SBNFT.Vɻ 44"ίϯύΠϧޙʹؔͷελο ΫϑϨʔϜ͕ڊେͰ͋Δ͜ͱΛൃ ݟͨ͠ࡍʹ༻͍ΒΕ·͢ɻ NVUFYͷՃ
1BSBMMFMJ[F$PNQJMBUJPO PCK-JOLIBTINV DUYUIBTI UZQFT4ZNT ίϯύΠϥγϯϘϧ ͔Β PCK-4ZNT ϦϯΧγϯϘϧ ͷ ϚοϐϯάΛ֨ೲ͍ͯͯ͠ɺ͔ͳΓසൟʹ
ΞΫηε͞ΕΔɻ NVUFYͷՃ
1BSBMMFMJ[F$PNQJMBUJPO HDTJHOBUTFUNV TJHOBUTFUϚοϓ%8"3'ੜ࣌ ʹΘΕͯΔ͜ͱ͔ͬͨΜͰ ͕ͪ͢ΐͬͱৄ͍͠༻ঢ়گΘ͔ Βͳ͔ͬͨͷͰޙͰͬͱௐͯ ه͠·͢ɻ NVUFYͷՃ
1BSBMMFMJ[F$PNQJMBUJPO HDUZQFQLHNV όοΫΤϯυͷίϯύΠϧ࣌ %8"3'ੜ࣌ʹUZQFTύοέʔδ ͷγϯϘϧͷݕࡧΑ͘ߦΘΕΔɻ NVUFYͷՃ
1BSBMMFMJ[F$PNQJMBUJPO UZQFTJOUFSOFE4USJOHTNV HD"45͔Β44"ͷม44"ૢ࡞ ʹ͓͍ͯɺBMMPDBUJPOΛݮΒͨ͢Ίʹ ໊લΛࢦఆͨ͠৽͍͠BVUPUNQT͕ಋ ೖ͞Ε͍ͯͯɺUZQFTJOUFSOFE4USJOHT Λอޢ͢Δඞཁ͕͋Δɻ NVUFYͷՃ
ɾฒྻίϯύΠϧΛ҆શʹߦ͏ͨΊͷNVUFYͷՃ ɾݱঢ়ͷίϯύΠϥͷάϩʔόϧมΛඇάϩʔόϧʹมߋ͢Δ ɾdͷ࡞ۀΛฒྻԽ ɾࣗಈੜ͞ΕͨؔฒྻίϯύΠϧ ύϑΥʔϚϯεˋ্ ɾͦͷଞࡉ͔͍࠷దԽमਖ਼ ZZFSSPSΛ͍ͬͯΔ෦Λ'BUBMGʹมߋ ɾ$ͱ1ͷΛมԽͤͨ͞ࡍͷੳ
1BSBMMFMJ[F$PNQJMBUJPO ͬͨ͜ͱ
$PODVSSFODZ.PEFM %POPUDPNNVOJDBUFCZTIBSJOHNFNPSZ JOTUFBE TIBSFNFNPSZCZDPNNVOJDBUJOH
$PODVSSFODZ.PEFM ͜ͷ$-ޙʹHDqBHTͷQ Dʹͳ͍ͬͯΔ 1ϓϩηε $ฒߦॲཧ D͕૿Ճ͢Δͱ$16ίετ૿Ճ͢ΔͨΊD͕εΠʔτεϙοτ
$PODVSSFODZ.PEFM ʢʣΑΓଟ͘ͷؔΛಉ࣌ʹίϯύΠϧ͢Δ ʢʣ࠷͍ؔ ͍ؔ ͷίϯύΠϧ࣌ؒͷվળ ʢʣίϯύΠϥͷΓͷγϦΞϧͳ෦ΛߴԽ͢Δ ʢʣେ͖ͳࣗಈੜؔ JOJU Λখ͞ͳͷʹࣗಈతʹׂ͢Δ ύϑΥʔϚϯεվળ
'MBUUͰ(PΛॻؒ͘Λืू͍ͯ͠·͢ qBUUUW
,PLJ*EF !OJDPOFHPUP 'MBUU*OD TPQIPNPSFPGUIF6OJWFSTJUZPG5PLZP