我们在设计多核多线程程序方案的时候,有时候需要比较不同程序设计方案的性能的区别。比如:同一程序在不同处理器之间切换,充分利用闲置的CPU资源或是了解不同线程绑定在不同CPU资源上的性能等等问题。这里我们可以使用pthread_setaffinity,pthread_getaffinity以及cpulimit配合使用来达到我们的目的。
在linux系统下我们不希望某个线程完全占据了某一CPU的全部性能,可以使用cpulimit在限制某个线程在使用该CPU的运行性能。
在ubuntu中我们可以使用以下命令来安装cpulimit。
$sudo apt-get update
$sudo apt-get install cpulimit
具体的使用以下二种不同的方法:(限制text线程在CPU上的运行性能不超过50%,假设线程text的PID号为1234,PID可以通过top命令查看)
A.cpulimit -e text -l 50
B.cpulimit -p 1234 -l 50 (PID号可以通过TOP查看)
关于pthread_setaffinity和pthread_getaffinity的介绍以及具体的使用方法: