抑郁症健康,内容丰富有趣,生活中的好帮手!
抑郁症健康 > cpu压力 测试软件 破坏测试工具——CPU压力

cpu压力 测试软件 破坏测试工具——CPU压力

时间:2020-09-10 05:49:35

相关推荐

由于代码是在iOS上进行测试的,所以仅供参考

//首先是cpu运算的函数

void func() {

sqrt(rand());//进行开方运算

}

//建立获取基准时间

static inline uint64_t nanos_to_abs(uint64_t nanos) {

return nanos * timebase_info.denom / timebase_info.numer;

}

//在本函数中,大家可以根据需要去将CPU压力分配到多个线程中

void cpu_stress_threads(double percentage, int thread_count) {

for (int i = 0; i < thread_count; i++) {

cpu_stress(percentage/thread_count);

}

}

//CPU加压函数

void cpu_stress(double percentage) {//我们首先传入希望达到的CPU占比

static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

mach_timebase_info(&timebase_info);//基准时间校准

});

dispatch_queue_t queue2 = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

dispatch_async(queue2, ^{//开辟线程执行加压动作

uint64_t bias = 0;

while (true) {//死循环持续加压,这里大家可以自行添加停止的时机

uint64_t t1, t2, t3, t, delay;

t1 = mach_absolute_time();

uint64_t sliceEnd = t1 + nanos_to_abs(1e7);//一个时间片为10ms

do {

//占用cpu的函数

func();

t2 = mach_absolute_time();

}

while(t2 < sliceEnd);//执行10ms的CPU持续运行

t = t2 - t1;

delay = t * ( 1.0 / percentage - 1.0);

delay -= bias;

mach_wait_until(mach_absolute_time() + delay);//执行对应比例的CPU休息时间

t3 = mach_absolute_time();

bias = (t3 - t2) - delay;//将代码执行的时间损耗计入休息时间

}

});

}

如果觉得《cpu压力 测试软件 破坏测试工具——CPU压力》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。