gpt4 book ai didi

c++ - 多线程引擎窗口随机减速

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

我们设置了一个基于任务的多线程引擎,其中调度程序将任务传递给线程无锁队列。引擎是用 C++ 编写的,使用 DirectX 进行渲染,我们使用 boost::thread 来创建线程。在窗口模式下,它会随机减慢一秒钟左右,然后再加速。这似乎是 Vista 造成的,但我们无法弄清楚如何正确解决它。

我们尝试过的一个似乎有助于随机减速的方法是让线程在每个任务处理完后休眠一毫秒,但它会导致其他问题,并不是一个真正好的解决方案。

最佳答案

我建议做的第一件事是通过分析了解导致速度下降的原因。

随机休眠很少是一个好主意(根据这里的经验,是的,我已经这样做了,是的,我后来修复了这个问题),也没有推测性能问题的来源,特别是在多线程环境中。

Visual Studio 2010 beta1 有一个很棒的分析器,如果它在您的应用程序中,它非常适合了解导致速度下降的原因,Hazim Shafi's blog介绍如何使用它。

您还可以查看 windows performance toolkit 中提供的 xperf 工具(您必须使用平台 sdk 安装程序,但您需要安装该节点,因此它实际上非常快)。

关于c++ - 多线程引擎窗口随机减速,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1412117/

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