gpt4 book ai didi

windows - 编写代码使CPU使用率显示为正弦波

转载 作者:可可西里 更新时间:2023-11-01 12:11:39 25 4
gpt4 key购买 nike

Write code in your favorite language and let Windows Task Manager represent a sine wave in CPU Usage History.

这是来自微软中国的技术面试题。我认为这是一个很好的问题。尤其值得了解候选人如何理解和找出解决方案。

编辑:如果可能涉及多核(cpu)情况,这是一个很好的观点。

最佳答案

Windows 中的线程时间片是 40 毫秒,iirc,所以这可能是一个很好的数字,可以用作 100% 标记。

unsigned const TIME_SLICE = 40;
float const PI = 3.14159265358979323846f;
while(true)
{
for(unsigned x=0; x!=360; ++x)
{
float t = sin(static_cast<float>(x)/180*PI)*0.5f + 0.5f;
DWORD busy_time = static_cast<DWORD>(t*TIME_SLICE);
DWORD wait_start = GetTickCount();
while(GetTickCount() - wait_start < busy_time)
{
}
Sleep(TIME_SLICE - busy_time);
}
}

这将给出大约 14 秒的周期。显然,这是假设系统中没有其他重要的 CPU 使用率,并且您只在单个 CPU 上运行它。这些在现实中都不是那么普遍。

关于windows - 编写代码使CPU使用率显示为正弦波,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/551494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com