Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows Qt创建者:使用处理器关联启动程序_Windows_Qt_Qt Creator_Affinity - Fatal编程技术网

Windows Qt创建者:使用处理器关联启动程序

Windows Qt创建者:使用处理器关联启动程序,windows,qt,qt-creator,affinity,Windows,Qt,Qt Creator,Affinity,我需要调试嵌入式设备的应用程序。此应用程序的一个问题可能与时间有关,因此我尝试降低开发机器上的执行速度 我有一个非常有用的设置,但为了方便起见需要进行一些调整,基本上我遵循了这里给出的建议: 文章中链接了一个工具“CPUSTRES.exe”,它可以产生较高的CPU使用率。为了防止工具耗尽我所有的CPU,我这样启动它(该工具将仅在第8个内核上运行): 然后我在Qt Creator(版本4.1.0)中启动调试会话。使用windows任务管理器,我可以为应用程序设置与压力工具相同的处理器相关性。这样

我需要调试嵌入式设备的应用程序。此应用程序的一个问题可能与时间有关,因此我尝试降低开发机器上的执行速度

我有一个非常有用的设置,但为了方便起见需要进行一些调整,基本上我遵循了这里给出的建议:

文章中链接了一个工具“CPUSTRES.exe”,它可以产生较高的CPU使用率。为了防止工具耗尽我所有的CPU,我这样启动它(该工具将仅在第8个内核上运行):

然后我在Qt Creator(版本4.1.0)中启动调试会话。使用windows任务管理器,我可以为应用程序设置与压力工具相同的处理器相关性。这样做给了我一个或多或少像嵌入式设备一样缓慢的应用程序,但调试器和所有其他应用程序都表现得很好


我发现在任务管理器中手动设置关联有点不方便。我希望这个应用程序始终只在同一个单核上。这仅用于调试目的,因此不希望在代码中更改此内容。如何实现这一点?

当我设法以所需的处理器亲和力启动测试中的应用程序时,我不会重新编译它。这并没有让我的生活更轻松。相反,我建议在代码中设置@ni1light注释的亲和性

简单的方法(没有要求):

#包括
int main(int argc,char*argv[]){
#ifdef_调试

DWORD_PTR processAffinityMask=1我知道您不想在代码中更改它,但这可能对您有用:如果您仅在调试时需要它,则可以使用预处理器仅在调试时启用此代码块。
START "Stress" /affinity 0x80 /HIGH CPUSTRES.EXE
#include <windows.h>
int main(int argc, char* argv[]) {
#ifdef _DEBUG
    DWORD_PTR processAffinityMask = 1 << 7;
    HANDLE process = GetCurrentProcess();
    SetProcessAffinityMask(process, processAffinityMask);
#endif
    [...]