I would like to know how much physical memory is available on the system, excluding any swap. Is there a method to get this information in Ruby?
The Memory Profiler gem is an effective way of tracking the memory usage of ruby code. This command will send a bunch of requests to your application, and track memory usage over time. In case of a memory leak, the memory usage will keep on increasing over time.
For Dynamic Memory allocation, the Ruby program uses Heap memory and the basic unit of the heap is a slot. Here, each slot occupies a value which is known as RVALUE. This RVALUE comprises 40 bytes and a container for objects of all types (Array, String, Class).
If you are using linux,You usually use a "free" command to find physical memory ie RAM details on the system
output = %x(free)
output will look slightly like the following string
" total used free shared buffers cached\nMem: 251308 201500 49808 0 3456 48508\n-/+ buffers/cache: 149536 101772\nSwap: 524284 88612 435672\n"
You can extract the information you need using simple string manipulations like
output.split(" ")[7]
will give total memory
output.split(" ")[8]
will give used memory
output.split(" ")[9]
will give free memory
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With