Go 优化Tips

今天看了一篇博客,介绍Go性能压测与pprof. 地址: profiling-and-optimizing-go-web-applications

其中总结的优化Tips很不错:

  1. 避免不必要的 heap 申请
  2. 对于不大的结构体,使用值比指针更好
  3. 对于maps和slice, 如果提前知道大小,最好预分配大小
  4. 如果不是必要,就不打LOG
  5. 如果做很多顺序读写,使用 buffered I/O
  6. 如果你的应用重度使用JSON,考虑使用生成器的分析序列化工具。If your application extensively uses JSON, consider utilizing parser/serializer generators (I personally prefer easyjson).
  7. 热点path 的每个操作都到头重要。 Every operation matters in a hot path.

原文:

  1. Avoid unnecessary heap allocations.
  2. Prefer values over pointers for not big structures.
  3. Preallocate maps and slices if you know the size beforehand.
  4. Don’t log if you don’t have to.
  5. Use buffered I/O if you do many sequential reads or writes.
  6. If your application extensively uses JSON, consider utilizing parser/serializer generators (I personally prefer easyjson).
  7. Every operation matters in a hot path.