L-6H

OSS Performance Tuning Tips

intermediate
Long Session (40 min)

GoのOSSにPerformanceのPatchを投げるときの取り組み方を実際の事例ベースで紹介します. Breaking Changeをせずにパフォーマンス問題を解決するために何をやっているか (sync.Poolを使う, structにPoolを持つような拡張を施す(image/png.Encoder go1.9~), bufをメンバとして持ってReset可能な作りにする, 明示的にbufを渡す関数(io.Copy, io.CopyBuffer)も提供する, チューニングの制約にならないためにpublicな関数は減らす), go-gitやgo本体へ投げたPatchの紹介もします.