Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

zchee
December 11, 2017

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

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

zchee

December 11, 2017
Tweet

More Decks by zchee

Other Decks in Programming

Transcript

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

    View Slide

  2. Souzoh confidential and proprietary
    Who?
    2

    View Slide

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

    View Slide

  4. 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

    View Slide

  5. Souzoh confidential and proprietary
    宣伝
    5

    View Slide

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

    View Slide

  7. Souzoh confidential and proprietary
    はい
    7

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    11

    View Slide

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

    View Slide

  13. 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

    View Slide

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

    View Slide

  15. 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

    View Slide

  16. 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

    View Slide

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

    View Slide

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

    View Slide

  19. 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

    View Slide

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

    View Slide