如何模拟不同的CPU频率和限制RAM

gei*_*bua 10 c# cpu ram multithreading process

我必须用C#构建一个模拟器.该模拟器应该能够运行具有可配置CPU速度和有限RAM大小的第二个线程,例如144MHz和50MB.
当然我知道模拟器永远不会像真正的硬件一样准确.但我试着获得几乎相似的表现.
目前我正在考虑创建一个我将不时停止/休眠的线程.根据所需的CPU速度,模拟器应调整此线程的休眠时间,从而模拟不同的CPU频率.为了测量实现的速度我虽然使用PerformanceCounters.但是使用这种方法我遇到的问题是我不知道如何限制线程可以使用的RAM大小.
你对如何实现这样的模拟器有什么想法吗?

提前致谢!!

Tim*_*oyd 1

如果您关心模拟操作系统环境,那么一个答案是使用可以控制内存和 CPU 参数等的虚拟机环境。

线程暂停/停止可能会帮助您模拟 CPU 频率,但这将非常不准确,因为当您暂停线程时,它将被取消调度,然后由操作系统以某个“随机”重新调度它。 “时间点,即你无法控制的点。

至于限制内存,可以选择启动一个托管代码的新进程,然后限制该进程的内存,例如:

http://www.codeproject.com/KB/threads/Setting_Max_Memory_Limit.aspx

但这并不能真正模拟整体操作系统内存限制。