Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
How to achieve parallel compilation in Go 1.9
Search
Koki Ide
November 05, 2017
Technology
7.1k
6
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
How to achieve parallel compilation in Go 1.9
Go Conference 2017 @JP の発表資料です。
Koki Ide
November 05, 2017
More Decks by Koki Ide
See All by Koki Ide
次世代のコンテナランタイム!?gVisorのコードを読みながら理解してみる
niconegoto
6
6.5k
How Communicating Sequential Goroutines Work
niconegoto
2
20k
Let's Realm
niconegoto
0
510
Other Decks in Technology
See All in Technology
購入ドメインでの課題と取り組み
ykagano
0
150
ai_cording_with_k8s_knowledge.pdf
mochizuki875
1
300
プロダクト価値を、 チームが使える判断軸に変える
vivion
0
130
分析の民主化を支えるメタデータ整備の実践
kakehashi
PRO
1
770
1万名の社員が使う認証基盤で どう信頼性を担保するか?
kairim0
0
210
組み立てて楽しむ AWS Blocks 入門
kmiya84377
0
220
Meet AgentCore Identity Consent Portal
hironobuiga
3
190
React Nativeでの OTA Updateって、 どう説明する?
ichiki1023
0
150
Google Cloud Next Tokyo 26登壇時のスクリプト
recruitengineers
PRO
0
200
ビジネスを止めない技術的負債の返済のための戦略とその手法 - 技術的負債と向き合う / Complexity and Simplicity
soudai
PRO
3
650
Execution in the Kingdom of Agents: Reflections on Abstraction and Complexity
bcantrill
0
870
The seven pitfalls of AI (revised version)
ufried
0
280
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
340
58k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1k
Building Applications with DynamoDB
mza
96
7.2k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8.1k
Speed Design
sergeychernyshev
33
2.1k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
260
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
860
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
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