先週 golang.tokyo #3 に参加した.抽選倍率2倍だったからダメかもなぁ…!と思って申し込んだら当たった.
テーマは「パフォーマンスチューニング」だったけど,「パフォーマンスチューニング」とは違うような話もあった.エウレカの話も聞きたかったから残念!
Accelerating real applications in Go @cubicdaiya
- GitHub - kazeburo/chocon
- Golang 標準の
net/http
で簡単にプロキシサーバを立てられる - ただ細かくパラメータをチューニングするためには
net/http/client.go
とnet/http/transport.go
を使う - 特に
MaxIdleConnsPerHost
はデフォルト値 2 だから小さくなっている
- Golang 標準の
- 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.Reader
とio.Writer
を引数としている場合はStream
のまま使うと良い- API リクエストを decode する場合
json.Unmarshal
でなくjson.NewDecoder
を使うと高速になる
1番テーマに沿ってる気がした.実際に同じようなコードを書くときがあったら気を付けたい.今回 Slides ってサービスが多かったけど,人気なのかな?あまり見たことがなかった.
git-schemlex と ddl-maker を使った DB migration の紹介 @Konboi
- Golang 製のマイグレーションツールは多くある
- 基本的に全て Rails 方式
- マイグレーションごとにファイルを生成して up / down で実行できる
- 大きな開発が複数ライン並行で走るときに厳しくなる
- GitHub - soh335/git-schemalex: database migration tool for mysql schema is managed via git
- SQL の差分を生成して実行してくれる
タイミング良くマイグレーションツールの調査をしていたので参考になった.Golang 製だと Goose も人気かなと思うけど,既存スキーマに対してエクスポートができないという点に困ってて,うまく運用にハマる気がしてない.そうなると Ruby 製だけど GitHub - thuss/standalone-migrations: A gem to use Rails Database Migrations in non Rails projects かなぁ…と考えているところ.
database/sql とコネクション / Talos208
database/sql
を使う場合db.Close()
はするべきではない- 1度 Open したらそのままにして Open と Close のコストを下げることができる
- ソースを追うとよくわかる
- Golang 1.6 から入った
SetConnMaxLifetime()
で期限切れのコネクションを再利用しなくなった
関連記事
既に参加者の記事が上がっていた!
裏番組
実は裏番組で Mackerel Meetup #9 もあった.Mackerel 活用してるから参加したかったし,お世話になってる @ariarijp の LT も見たかったけど,golang.tokyo #3 を選んでしまった!たまたま抽選当たったから…w
カカカカックさんは #golangtokyo 組です
— songmu (@songmu) 2017年1月26日
ハッシュタグを見てたら「アノテーション機能」の話が流れてきて,あまりに待望の機能だったので,1人で興奮してた!
次回の Mackerel Meetup は参加しまっす!