CPU MEM 画曲线

 在编程时突然想到为什么CPU会满负荷,我怎么样才能控制CPU的利用率? 感觉很有意思,我一开始是这么想的,CPU利用率跟运算类型有关,比如INT操作比float操作更费CPU。经过实验,基本没区别,看来跟这个没有关系。然后就应该是空闲时间的原因了。

 还有一个问题是现在CPU都是多线程的,操作系统会自动调度到不同线程上去,所以就算画出来效果也不是很好。还好操作系统有库让我自定义调度到哪个线程或者说那个CPU核。具体操作:

 

 关于sched具体操作,自行man:

  •  man sched.h
  •  man sched_setaffinity
  •  man cpu_set

 

 这个问题比较容易,现在已经可以试着画方波了。

 

cpu1

 

 接下去画了一下sin的,不太标准,有些问题没有解决,代码不贴,直接上图:

cpu4

 内存理论上来说比CPU简单,但是由于内存分配和释放需要一定时间,所以图像不是很准确,主要思想是运用malloc 和 free。实验中发现光malloc系统是没有真正分配内存的,只有memset或者赋值的时候,才会显示真正分配。下面来一张比较搓的图。

mem

发表评论

电子邮件地址不会被公开。 必填项已用*标注