我需要编写一个应用程序,它可以在预设值(例如,30%,50%,90%等)下模拟高cpu使用一段时间。这意味着需要两个输入(CPUUsage和duration)。假设我使用50%的CPU使用率和2分钟的持续时间)。这意味着当我运行应用程序时,它应该花费50%的CPU 2分钟。任何想法如何实现这一目标?
答案 0 :(得分:2)
您需要编写一个旋转循环,以使处理器忙碌所需的时间。 Sleep(n)不起作用,因为它会让你的线程忙,它允许CPU做其他事情。
使用基于线程的计时器(不是基于消息的计时器)来安排定期执行负载模拟器功能,例如每10秒。在该函数中,运行您的自旋循环(一个递增局部变量的for循环),直到达到所需的加载时间(10秒的百分比),然后退出该函数。计时器将在(大约)10秒钟内再次打电话给你,以便咀嚼另一个时间片。因此,对于30%的负载,您的旋转循环应该在每10秒间隔中搅拌3秒钟。
您还应该考虑系统中存在的可执行内核的数量。在四核超线程英特尔处理器上,您应该创建8个线程并在每个线程中运行您的负载模拟器。