问题:我有一台开发者机器(读取:快速,大量内存),但用户有一台用户机器(读取:慢,内存不多)。
我可以使用Fiddler模拟慢速网络(http://www.fiddler2.com/fiddler2/) 我可以看一下使用Process Explorer(http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx)进程的CPU是如何使用的。
有什么方法可以限制进程可以拥有的CPU数量,或者进程可以拥有多少内存来更有效地模拟用户计算机? (例如,为了隔离性能问题)
我想我可以使用VM,但我正在寻找更轻松的东西。
我正在使用Windows XP,但欢迎任何Windows机器的解决方案。感谢。
答案 0 :(得分:5)
平台SDK过去常常带有压力工具,可以在过去的好时光(SDK中的STRESS.EXE
,CPUSTRESS.EXE
)中执行此操作,但它们可能仍然存在(请检查您的平台SDK和/或Visual Studio安装这两个文件 - 不幸的是我在我输入的机器上安装了PSDK和VS.)
其他工具:
答案 1 :(得分:3)
AppVerifier具有资源较低的模拟功能。
您还可以尝试将流程的优先级设置得非常低。
答案 2 :(得分:1)
您可以运行MemAlloc来咀嚼内存,一次可能会复制几份。
答案 3 :(得分:1)
我找到了一个相关的问题:
Set Windows process (or user) memory limit
该问题的已接受答案有一个指向Windows API SetProcessWorkingSetSize
的链接,因此它不是一个可以限制进程可以使用的内存量的工具。
在更改进程可以使用的CPU资源量方面,如果您不介意每个核心限制资源的粒度,任务管理器可以更改进程的处理器关联。
在任务管理器中,右键单击某个进程并选择“设置关联...”,然后选择可以为其分配进程的处理器核心。
如果开发计算机有多个内核但用户计算机只有一个,那么,不要让进程在所有可用内核上运行,而是将进程的处理器关联性设置为只有一个内核。
答案 4 :(得分:0)
它与SetProcessWorkingSetSize
无关只需使用内部Win32内核apis来限制CPU使用率