翻译自 Basics of benchmarking, profiling and tracing with Go,作者对Go性能分析的工具和手段做了一个很好的总结。
这篇文档提供了Go提供的测量性能和收集运行时信息的工具的概览。它不是一个关于基准测试、性能分析和跟踪的详细教程。
所以这篇文档也可以看成是一篇备忘录。
在大多数情况下,您可以通过运行提供的示例源代码自行尝试。作为一种现场演示或研讨会,很容易使用这些工具进行试验和体验。
主要内容包括:
- Benchmarking(基准测试):专注于一段特定的代码, 允许测量时间 和/或 内存信息。
- Profiling(分析):在程序执行期间(或测试的时候)通过聚合采样收集的数据。分析是没有时间线的(和tracing不一样)。
- Tracing(跟踪):通过程序执行期间(或测试的时候)收集发生的事件数据。跟踪是有时间线的。
基准测试:专注于一段特定的代码,允许测量时间和/或内存信息。
分析:在程序(或测试)执行期间通过采样收集的聚合数据。分析没有时间线。
跟踪:通过程序(或测试)执行期间发生的事件收集的数据。跟踪有时间线。
分析和跟踪技术可以应用于基准测试。
