kakakakakku blog

Weekly Tech Blog: Keep on Learning!

golang.tokyo #3 に参加してパフォーマンスの話を聞いてきた

先週 golang.tokyo #3 に参加した.抽選倍率2倍だったからダメかもなぁ…!と思って申し込んだら当たった.

テーマは「パフォーマンスチューニング」だったけど,「パフォーマンスチューニング」とは違うような話もあった.エウレカの話も聞きたかったから残念!

golangtokyo.connpass.com

Accelerating real applications in Go @cubicdaiya

  • GitHub - kazeburo/chocon
    • Golang 標準の net/http で簡単にプロキシサーバを立てられる
    • ただ細かくパラメータをチューニングするためには net/http/client.gonet/http/transport.go を使う
    • 特に MaxIdleConnsPerHost はデフォルト値 2 だから小さくなっている
  • GitHub - mercari/gaurun: General push notification server in Go
    • goroutine 数やチャネルのサイズをメトリクスとして取得できるようにしている
    • モニタリングできるようにしている

メルカリのプロダクション環境に導入されているソフトウェアの話で非常に深かった.パパあるあるだと思うけど「チョコン」って聞くと「コッシーの友達のチョコン」のことを考えてしまうので,発表中に変にニヤニヤしてしまった…w

PERFORMANCE OPTIMIZATIONS / Carlo Alberto Ferraris

  • サーバ費用より人を雇う方がコストが高い
  • オプティマイズするよりスケールアウトした方が良い
  • The Twelve-Factor App
  • 失敗する前提で考える

Golang の話ではなく,サービス開発の思想的な話だった.途中から Golang の話しになるのかなぁーと思って聞いてたらそのまま終わった.話は凄く面白かった.

Stream の扱い方 / jun06t

  • ioutil.ReadAll で全て []byte に変換するとメモリを食ってしまう
  • io.Readerio.Writer を引数としている場合は Stream のまま使うと良い
  • API リクエストを decode する場合 json.Unmarshal でなく json.NewDecoder を使うと高速になる

1番テーマに沿ってる気がした.実際に同じようなコードを書くときがあったら気を付けたい.今回 Slides ってサービスが多かったけど,人気なのかな?あまり見たことがなかった.

git-schemlex と ddl-maker を使った DB migration の紹介 @Konboi

タイミング良くマイグレーションツールの調査をしていたので参考になった.Golang 製だと Goose も人気かなと思うけど,既存スキーマに対してエクスポートができないという点に困ってて,うまく運用にハマる気がしてない.そうなると Ruby 製だけど GitHub - thuss/standalone-migrations: A gem to use Rails Database Migrations in non Rails projects かなぁ…と考えているところ.

speakerdeck.com

database/sql とコネクション / Talos208

  • database/sql を使う場合 db.Close() はするべきではない
  • 1度 Open したらそのままにして Open と Close のコストを下げることができる
  • ソースを追うとよくわかる
  • Golang 1.6 から入った SetConnMaxLifetime() で期限切れのコネクションを再利用しなくなった

www.slideshare.net

関連記事

既に参加者の記事が上がっていた!

kysnm.hatenablog.com

developers.cyberagent.co.jp

裏番組

mackerelio.connpass.com

実は裏番組で Mackerel Meetup #9 もあった.Mackerel 活用してるから参加したかったし,お世話になってる @ariarijp の LT も見たかったけど,golang.tokyo #3 を選んでしまった!たまたま抽選当たったから…w

ハッシュタグを見てたら「アノテーション機能」の話が流れてきて,あまりに待望の機能だったので,1人で興奮してた!

mackerel.io

次回の Mackerel Meetup は参加しまっす!