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