Go1.10導入予定のキャッシュビルドについて in golang.tokyo #11
Go1.10導入予定のキャッシュビルドについてgolang.tokyo #11
View Slide
Souzoh confidential and proprietaryWho?2
Souzoh confidential and proprietary自己紹介● Koichi Shiraishi (@zchee)● GitHub: zchee● Twitter: _zchee_● Go シカカケナイ○ Go歴: 2.5年○ エンジニア歴: 4ヶ月● Mercari / Souzoh ソリューションチーム所属3
Souzoh confidential and proprietaryプロジェクト / コントリビュート● github.com/zchee/resume○ zchee/docker-machine-driver-xhyve○ zchee/nvim-go○ nsf/gocode○ moby/hyperkit○ docker/machine○ gperftools/gperftools (TC Malloc)○ tmux/tmux○ google/flatbuffers○ etc...4
Souzoh confidential and proprietary宣伝5
Souzoh confidential and proprietary 6https://www.wantedly.com/projects/171425
Souzoh confidential and proprietaryはい7
Souzoh confidential and proprietaryGo1.10導入予定のキャッシュビルドについて8
Souzoh confidential and proprietary皆さんGo devel 使ってますか?9
Souzoh confidential and proprietaryぼくは業務で使ってます!!10
Souzoh confidential and proprietaryGoに遂にキャッシュビルドが導入されました11
Souzoh confidential and proprietary 12現在、● 1.10beta1● develで利用可能です
Souzoh confidential and proprietarygolang/goキャッシュビルド導入13● rcs: cmd/go/internal/cache: implement build artifact cache○ https://github.com/golang/go/commit/1114d403fa7d16247a3c569978290d0827f224a1● rcs: cmd/go: cache built packages○ https://github.com/golang/go/commit/de4b6ebf5d0a12f57ace43948b8b1b90f200fae9
Souzoh confidential and proprietary● GOCACHE環境変数が増えた○ go env GOCACHE○ キャッシュファイルが保存されるところ● sha256でハッシュ化され保存される● 二回目以降のビルド時から使用され、既にビルド時間の短縮に繋がっている● 雰囲気はccacheみたいな感じ○ 実装までは まだ追えてません 時間がないので省略golang/goキャッシュビルド導入14
Souzoh confidential and proprietaryBefore this CL:102.72u 15.29s 21.98r go build -o /tmp/jujud github.com/juju/juju/cmd/jujud ...105.99u 15.55s 22.71r go build -o /tmp/jujud github.com/juju/juju/cmd/jujud ...106.49u 15.70s 22.82r go build -o /tmp/jujud github.com/juju/juju/cmd/jujud ...107.09u 15.72s 22.94r go build -o /tmp/jujud github.com/juju/juju/cmd/jujud ...108.19u 15.85s 22.78r go build -o /tmp/jujud github.com/juju/juju/cmd/jujud ...108.92u 16.00s 23.02r go build -o /tmp/jujud github.com/juju/juju/cmd/jujud ...109.25u 15.82s 23.05r go build -o /tmp/jujud github.com/juju/juju/cmd/jujud ...109.57u 15.96s 23.11r go build -o /tmp/jujud github.com/juju/juju/cmd/jujud ...109.86u 15.97s 23.17r go build -o /tmp/jujud github.com/juju/juju/cmd/jujud ...110.50u 16.05s 23.37r go build -o /tmp/jujud github.com/juju/juju/cmd/jujud ...golang/goビルド時間の違い (github.com/juju/juju/cmd/jujud)15
Souzoh confidential and proprietarygolang/goAfter this CL:113.66u 17.00s 24.17r go build -o /tmp/jujud github.com/juju/juju/cmd/jujud ...3.85u 0.68s 3.49r go build -o /tmp/jujud github.com/juju/juju/cmd/jujud ...3.98u 0.72s 3.63r go build -o /tmp/jujud github.com/juju/juju/cmd/jujud ...4.07u 0.72s 3.57r go build -o /tmp/jujud github.com/juju/juju/cmd/jujud ...3.98u 0.70s 3.43r go build -o /tmp/jujud github.com/juju/juju/cmd/jujud ...4.58u 0.70s 3.58r go build -o /tmp/jujud github.com/juju/juju/cmd/jujud ...3.90u 0.70s 3.46r go build -o /tmp/jujud github.com/juju/juju/cmd/jujud ...3.85u 0.71s 3.52r go build -o /tmp/jujud github.com/juju/juju/cmd/jujud ...3.70u 0.69s 3.64r go build -o /tmp/jujud github.com/juju/juju/cmd/jujud ...3.79u 0.68s 3.41r go build -o /tmp/jujud github.com/juju/juju/cmd/jujud ...ビルド時間の違い (github.com/juju/juju/cmd/jujud)16
Souzoh confidential and proprietary今後に期待しつつ1.10beta1で恩恵を受けましょう!17
Souzoh confidential and proprietaryが、DWARF辺りのバグがあり、cgoビルドが落ちます18
Souzoh confidential and proprietary● cmd/go: running dsymutil failed: signal: segmentation fault○ https://github.com/golang/go/issues/23046● cmd/compile: fix bug with DWARF abstract functions○ https://go-review.googlesource.com/c/go/+/83135golang/goDWARFバグ19
Souzoh confidential and proprietaryご静聴ありがとうございました!20