c# - 模拟一段时间内的高CPU使用率

标签 c# simulation cpu-usage

<分区>

Possible Duplicate:
Simulate steady CPU load and spikes

我需要编写一个应用程序,可以在一定时间内模拟预设值(例如 30%、50%、90% 等)的高 CPU 使用率。这意味着它将需要两个输入(CPUUsage 和 duration)。假设我使用 50% 的 CPU 使用率和 2 分钟的持续时间)。这意味着当我运行应用程序时,它应该占用 50% 的 CPU 2 分钟。有什么想法可以实现吗?

最佳答案

您将需要编写一个自旋循环以使处理器在所需的时间内保持忙碌。 Sleep(n) 不会工作,因为当它让您的线程保持忙碌时,它允许 CPU 做其他事情。

使用基于线程的计时器(而不是基于消息的计时器)来安排负载模拟器功能的定期执行,例如,每 10 秒执行一次。在该函数中,运行自旋循环(递增局部变量的 for 循环)直到达到所需的加载时间(占 10 秒的百分比),然后退出该函数。计时器将在(大约)10 秒后再次调用您,以消耗另一个时间片。因此,对于 30% 的负载,您的自旋循环应该在每 10 秒的间隔中搅动 3 秒。

您还应该考虑系统中存在的可执行内核的数量。在四核超线程英特尔处理器上,您应该创建 8 个线程并在每个线程中运行您的负载模拟器。

关于c# - 模拟一段时间内的高CPU使用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8977935/

相关文章:

python - 为什么我的 python 3 实现比我用 C++ 编写的快得多?

algorithm - Netlogo,创建避障算法

c++ - 使用 C++ (win32) 获取一个进程的 CPU 使用率

java - 重绘占用CPU过多

c# - 使用 C# 动态更改 html 控件样式

c# - OpenTK - 如何按给定角度旋转对象

c# - ISBN 教科书图片抓取工具

c# - 从 C# 上的 linq 获取 JSON 数组

python - 在 python 中定义数组的正确方法

spring - 哪个最适合批量 XML 数据处理? Spring Batch 还是 ETL 水壶 pentaho?