我有一个用go编写的网络应用程序.业务逻辑并不重要.
问题是我正在努力利用我的机器的完整功能,
当我分析应用程序时,大部分时间花在运行时的东西上.似乎很多时间花在runtime.systemstack
我不明白它意味着什么或如何提高性能上.
我添加了相关慢执行方法的分析.
svg文件
如果您进行了 cpu 分析 ( go test -cpuprofile),问题 10609提到“运行时:由于系统堆栈,cpu 分析没有用”(此处已修复,适用于Go 1.5)
您可以通过最近的 Go 1.10 跟踪获得更有趣的视图:请参阅“使用 Go 1.10 新跟踪功能来调试集成测试”
go test -trace trace.out
go tool trace -http=localhost:8080 trace.out
Run Code Online (Sandbox Code Playgroud)
请参阅此处的示例。您将清楚地看到每个处理器的不活动期。