# Get CPU usage

**URL:** <https://www.ruby-forum.com/t/get-cpu-usage/155602>\
**Category:** Ruby\
**Created:** [December 14, 2008, 2:08pm UTC](https://www.ruby-forum.com/t/get-cpu-usage/155602 "2008-12-14T14:08:20Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![pandabeer](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/ecd19e/32.png) [@pandabeer](https://www.ruby-forum.com/u/pandabeer)\
**Post date:** [December 14, 2008, 2:08pm UTC](https://www.ruby-forum.com/t/get-cpu-usage/155602/1 "2008-12-14T14:08:20Z")

</div>

Hello everybody,

I would like to get the % of CPU usage of a current Ruby script.  
For example, I would like to start my script like and allow it to get  
and print this such as:

./application.rb  
=\> 12:10 =\> CPU usage is 3.2%  
=\> 12:15 =\> CPU usage is 3.1%  
=\> 12:20 =\> CPU usage is 3.1%  
=\> 12:25 =\> CPU usage is 3.5%

Have you got an idea? Many thanks.

---

<div class="post-metadata">

**Author:** ![pandabeer](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/ecd19e/32.png) [@pandabeer](https://www.ruby-forum.com/u/pandabeer)\
**Post date:** [December 14, 2008, 3:25pm UTC](https://www.ruby-forum.com/t/get-cpu-usage/155602/2 "2008-12-14T15:25:42Z")

</div>

On 14.12.2008 14:01, Panda B. wrote:

> =\> 12:25 =\> CPU usage is 3.5%
> 
> Have you got an idea? Many thanks.

$ ruby -e ‘10.times { 100000.times { 1 + 2 }; p Process.times }’  
#  
#  
#  
#  
#  
#  
#  
#  
#  
#

You could correlate that to real time that has passed.

$ ruby -e ‘t=Time.now; 10.times { sleep 2;  
pt=Process.times;p((pt.utime+pt.stime)/(Time.now-t)) }’  
0.015  
0.00749812546863284  
0.00499916680553241  
0.00374953130858643  
0.002999700029997  
0.00249979168402633  
0.00214270409256482  
0.00187488281982376  
0.00166657407921782  
0.00149992500374981

robert@fussel ~  
$ ruby -e ‘t=Time.now; 10.times {10\_000.times {1+2};  
pt=Process.times;p((pt.utime+pt.stime)/(Time.now-t)) }’  
19.25  
8.55555555555556  
5.13333333333333  
4.89473684210526  
3.875  
3.20689655172414  
3.20588235294118  
2.86842105263158  
2.5952380952381  
2.31914893617021

Obviously there is a factor missing…

robert@fussel ~

robert
