我正在做一个10万亿的插入基准测试,以了解我正在构建的小型缓存系统的性能。在观察活动监视器时,我注意到main
Go进程只显示了100%(800%)的CPU。
我是否需要将循环拆分为例程以使其分成所有8个核心,还是有其他原因?
我没有发布代码,因为测试代码不过是主体测试功能中的循环。
答案 0 :(得分:1)
您的应用程序仅使用一个线程,因此只有一个核心以100%运行是正确的
如果你想使用多个核心,你必须使用多个go例程,记住设置GOMAXPROCS
shell环境或你的应用程序只使用一个核心。
请记住,使用多个流程可能会使您的应用程序变得更慢,因为如果您的行为本质上是顺序的,那么只需添加更多goroutine
就无法加快应用程序的速度。只有当您的行为本质上是平行的时,才能真正利用多线程。