问题:我有一个开发人员机器(读取:快速,大量的内存),但用户有一个用户机器(读:慢,不是很多的内存)。
我可以使用Fiddler( http://www.fiddler2.com/fiddler2/ )来模拟一个很慢的networking。我可以看看如何使用Process Explorer使用CPU随着时间的推移( http://technet.microsoft.com/zh-CN/ -us / sysinternals / bb896653.aspx )。
有什么办法可以限制一个进程可以拥有的CPU数量,或者一个进程为了更有效地模拟一个用户机器而拥有的内存数量? (为了隔离性能问题,例如)
我想我可以使用虚拟机,但我正在寻找一些更轻。
我使用Windows XP,但任何Windows机器的解决scheme将受到欢迎。 谢谢。
平台SDK过去常常带有压力工具,在过去的日子(SDK中的STRESS.EXE
, CPUSTRESS.EXE
),但它们可能仍然存在(请检查您的平台SDK和/或Visual Studio安装这两个文件 – 不幸的是,我有niether PSDK也没有安装在我打字的机器上的VS)。
其他工具:
也看到这个现有的线程 。
AppVerifier具有低资源仿真功能。
您也可以尝试将流程的优先级设置得非常低。
你可以运行MemAlloc来咀嚼RAM,可能会一次拷贝几个拷贝。
我发现一个相关的问题:
设置Windows进程(或用户)的内存限制
接受的问题答案有一个链接到Windows API的SetProcessWorkingSetSize
,所以它不完全是一个工具,可以限制一个进程可以使用的内存量。
就改变进程可以使用的CPU资源量而言,如果您不介意资源的每核心限制的粒度,则任务管理器可以更改进程的处理器关联性。
在任务管理器中,右键单击一个进程并选择“设置相似性…”,然后选择进程可以分配给的处理器内核。
如果开发机器有许多核心,但用户机器只有一个核心,那么,不要让进程在所有可用的核心上运行,而是将进程的处理器亲和力设置为只有一个核心。
它与SetProcessWorkingSetSize无关
只需使用内部的Win32内核API来限制CPU使用率