Slide 1

Slide 1 text

Go1.10導入予定のキャッシュビルド について golang.tokyo #11

Slide 2

Slide 2 text

Souzoh confidential and proprietary Who? 2

Slide 3

Slide 3 text

Souzoh confidential and proprietary 自己紹介 ● Koichi Shiraishi (@zchee) ● GitHub: zchee ● Twitter: _zchee_ ● Go シカカケナイ ○ Go歴: 2.5年 ○ エンジニア歴: 4ヶ月 ● Mercari / Souzoh ソリューションチーム所属 3

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

Souzoh confidential and proprietary 宣伝 5

Slide 6

Slide 6 text

Souzoh confidential and proprietary 6 https://www.wantedly.com/projects/171425

Slide 7

Slide 7 text

Souzoh confidential and proprietary はい 7

Slide 8

Slide 8 text

Souzoh confidential and proprietary Go1.10導入予定のキャッシュビルドに ついて 8

Slide 9

Slide 9 text

Souzoh confidential and proprietary 皆さん Go devel 使ってますか? 9

Slide 10

Slide 10 text

Souzoh confidential and proprietary ぼくは業務で使ってます!! 10

Slide 11

Slide 11 text

Souzoh confidential and proprietary Goに 遂にキャッシュビルドが導入されまし た 11

Slide 12

Slide 12 text

Souzoh confidential and proprietary 12 現在、 ● 1.10beta1 ● devel で利用可能です

Slide 13

Slide 13 text

Souzoh confidential and proprietary golang/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

Slide 14

Slide 14 text

Souzoh confidential and proprietary ● GOCACHE環境変数が増えた ○ go env GOCACHE ○ キャッシュファイルが保存されるところ ● sha256でハッシュ化され保存される ● 二回目以降のビルド時から使用され、既にビルド時間の短縮に繋がっている ● 雰囲気はccacheみたいな感じ ○ 実装までは まだ追えてません 時間がないので省略 golang/go キャッシュビルド導入 14

Slide 15

Slide 15 text

Souzoh confidential and proprietary Before 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

Slide 16

Slide 16 text

Souzoh confidential and proprietary golang/go After 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

Slide 17

Slide 17 text

Souzoh confidential and proprietary 今後に期待しつつ 1.10beta1で 恩恵を受けましょう! 17

Slide 18

Slide 18 text

Souzoh confidential and proprietary が、 DWARF辺りのバグがあ り、 cgoビルドが落ちます 18

Slide 19

Slide 19 text

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/+/83135 golang/go DWARFバグ 19

Slide 20

Slide 20 text

Souzoh confidential and proprietary ご静聴ありがとうございました! 20