基准测试中仅显示 100% 运行
Only 100% shown on benchmark run
我只是在做一个 1000 万次插入基准测试,以查看我正在构建的小型缓存系统的性能。在观察 Activity 监视器时,我注意到 main
Go 进程只显示 100%(在 800% 中)CPU.
我是否需要将我的循环拆分为例程以使其拆分为所有 8 个内核,还是有其他原因?
我没有发布代码,因为测试代码只不过是主体中测试函数中的一个循环。
您的应用程序仅使用一个线程,因此只有一个内核 运行 达到 100% 是正确的。
如果你想使用多个核心,你必须使用多个 go 例程,请记住设置 GOMAXPROCS
shell 环境,否则你的应用程序将只使用一个核心。
请记住,您的应用程序使用多个进程可能会更慢,因为如果您的行为本质上是连续的,您无法仅通过添加更多 goroutine
来加速应用程序。只有当您的行为本质上是并行的时,您才能真正利用多线程。
我只是在做一个 1000 万次插入基准测试,以查看我正在构建的小型缓存系统的性能。在观察 Activity 监视器时,我注意到 main
Go 进程只显示 100%(在 800% 中)CPU.
我是否需要将我的循环拆分为例程以使其拆分为所有 8 个内核,还是有其他原因?
我没有发布代码,因为测试代码只不过是主体中测试函数中的一个循环。
您的应用程序仅使用一个线程,因此只有一个内核 运行 达到 100% 是正确的。
如果你想使用多个核心,你必须使用多个 go 例程,请记住设置 GOMAXPROCS
shell 环境,否则你的应用程序将只使用一个核心。
请记住,您的应用程序使用多个进程可能会更慢,因为如果您的行为本质上是连续的,您无法仅通过添加更多 goroutine
来加速应用程序。只有当您的行为本质上是并行的时,您才能真正利用多线程。