您的位置:首页 > 编程语言

编程之美中CPU运行曲线题目

2016-01-21 18:40 246 查看
在编程之美中有一道题目是将CPU的使用曲线按照要求显示,因此分析该题目的要点即是通过自己的程序控制CPU的使用率,按照要求合理的控制运算与Sleep的时间比。在这里默认特定条件下(当前CPU上只有本程序运行,其他程序运行的影响很小,可忽略不计),用Python程序实现了该程序,在电脑上执行,基本合乎要求,代码如下:

#-*- coding: utf8 -*-
"""
控制CPU使用曲线
"""
import timeit
import time

def run_cpu():
"""
消耗CPU运算时执行的程序
"""
x = [_ for _ in range(RUN_RANGE_NUMBER)]

def idle_cpu():
"""
保持CPU处于IDLE的Sleep程序
"""
time.sleep(SLEEP_TIME)

TEST_TIME_NUMBERS = 100
RUN_RANGE_NUMBER = 100000
SLEEP_TIME = timeit.timeit("run_cpu()", setup="from __main__ import run_cpu", number=TEST_TIME_NUMBERS)/TEST_TIME_NUMBERS
print("测试运行100次,每次执行时间为:{}S".format(SLEEP_TIME))

def run_for_1s(percent):
"""
1s中按照percent比例分别执行程序或者休眠
"""
all_times = 0.33 / SLEEP_TIME
cpu_times = all_times * percent / 100

for _ in range(3):
for i in range(int(all_times)):
if i < cpu_times:
run_cpu()
else:
idle_cpu()

def run_sin():
"""
使用sin函数
"""
import math
i = 0
while True:
i = i + 1
use_age = 50 + math.sin(i/5)*50
run_for_1s(use_age)

if __name__ == '__main__':
run_sin()
在本代码中使CPU的运行函数是run_cpu用的是列表生成,其实也可以使用其他的语句达成。其曲线如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: