我正在通过 boost 库对使用多个线程的方法执行调用。这样做我得到了相当大的性能提升。我最近在该方法中引入了线性回归计算,并且每个线程的性能损失严重。
例如,如果我运行一个线程,平均方法调用需要 2 秒。如果我使用两个线程,我会注册两倍的 CPU 活动,但平均方法调用需要 5-6 秒。随着我增加线程,这种情况仍在继续。没有已知的竞争条件或(我认为)重要的共享内存。
似乎所有线程都在使用某些缓存或其他 CPU 硬件功能,从而成为瓶颈。但是我对 CPU 架构的了解还不够,无法确定。我正在运行 Intel Xeon 25-2620 CPU。
迫切需要帮助。