gpt4 book ai didi

c++ - Boost.lockfree 在 RHEL 5.3 上的性能

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:59:48 24 4
gpt4 key购买 nike

我正在尝试将 Boost::lockfree::spsc_queue 用于将在多个平台上受支持的应用程序。我使用各种版本的 Visual Studio 在 Windows 7 上尝试了来自 boost_1_55_0/libs/examples/lockfree 的 spsc_queue.cpp 示例,它们都工作正常。它在 CentOS 6.3(在 VMWare Player 6.0 下运行)上也能完美运行。但是在 Centos 5.3 上,使用 gcc 4.1.2(也在 VMWare 下运行)的性能是 Not Acceptable ——它比 CentOS 6.3 慢了大约 200 倍。我需要支持所有这些操作系统和编译器版本,尽管它们太旧了,不再受支持。

有谁知道为什么在 CentOS 5.3 上这么慢?

最佳答案

感谢您对我的问题提出的有用评论。我现在发现,性能不佳是由于在仅使用我的一个 CPU 内核的 VM 上的 RHEL 5 上调度线程的方式造成的。使用多核时问题消失了,对于单核,对 Boost 示例进行以下修改(即让生产者在队列满时休眠一小段时间)大大 boost 了整体速度:

void producer(void)
{
for (int i = 0; i != iterations; ++i) {
int value = ++producer_count;
while (!spsc_queue.push(value))
usleep(1000); // WAS: ; (empty statement)
}
}

关于c++ - Boost.lockfree 在 RHEL 5.3 上的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21461579/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com