如何减慢Windows进程?

我知道我需要挂上QueryPerformanceCounter,但是下一步该怎么做?

需要有关Delphi或C ++的帮助

最佳答案

我不确定我了解钩住QueryPerformanceCounter与减慢您描述的过程的关系。也许您在原始问题或评论中有详细阐述,我可以为您提供进一步的帮助。

要回答您的问题,您可以使用Windows 2000资源工具包中的cpustres.exe对系统进行加载,从而导致上下文切换。如果您承担了足够的负载并超额预订了所有可用的CPU,则会减慢您的处理速度。根据您使用cpustres设置选择的负载级别,您可能会减慢很多速度。

如果您想以一种更具控制性的方式以编程方式减慢该过程而又不会使其崩溃,则可以使用casablanca的答案,但将Sleep(10)替换为:

// Turn off optimizations to make sure the busy wait loops do
// not get optimized out!

HANDLE hThread = ...; // thread that you want to slow down
for (;;) {
  SuspendThread(hThread); // Do this for each process thread

  // Busy wait for pause (possibly small)
  const DWORDLONG pauseFactor=1000; // In cycles
  DWORDLONG start=__rdtsc();

  while (__rdtsc()-start<pauseFactor)
    ;

  ResumeThread(hThread); // Do this for each process thread

  // Busy wait for resume
  const DWORDLONG runFactor=1000; // In cycles
  DWORDLONG start=__rdtsc();

  while (__rdtsc()-start<runFactor)
    ;
}

关于c++ - 减慢Windows进程?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4059328/

10-10 05:11