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
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.2k
How Communicating Sequential Goroutines Work
niconegoto
2
19k
Let's Realm
niconegoto
0
500
Other Decks in Technology
See All in Technology
田舎で20年スクラム(後編):一個人が企業で長期戦アジャイルに挑む意味
chinmo
1
1.2k
Keynoteから見るAWSの頭の中
nrinetcom
PRO
1
170
Claude Codeを使った情報整理術
knishioka
20
12k
投資戦略を量産せよ 2 - マケデコセミナー(2025/12/26)
gamella
1
620
CQRS/ESになぜアクターモデルが必要なのか
j5ik2o
0
720
コールドスタンバイ構成でCDは可能か
hiramax
0
130
業務の煩悩を祓うAI活用術108選 / AI 108 Usages
smartbank
9
19k
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
2.9k
1万人を変え日本を変える!!多層構造型ふりかえりの大規模組織変革 / 20260108 Kazuki Mori
shift_evolve
PRO
6
990
AWS re:Inventre:cap ~AmazonNova 2 Omniのワークショップを体験してきた~
nrinetcom
PRO
0
130
技術選定、下から見るか?横から見るか?
masakiokuda
0
180
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
1
840
Featured
See All Featured
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
0
51
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
54
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
120
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
110
Speed Design
sergeychernyshev
33
1.5k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
How to Think Like a Performance Engineer
csswizardry
28
2.4k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
160
How GitHub (no longer) Works
holman
316
140k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
6.8k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
200
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
140
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