I am running a shell script to execute a c++ application, which measures the performance of an api. i can capture the latency (time taken to return a value for a given set of parameters) of the api, but i also wish to capture the cpu and memory usage alongside at intervals of say 5-10 seconds.
is there a way to do this without effecting the performance of the system too much and that too within the same script? i have found many examples where one can do outside (independently) of the script we are running; but not one where we can do within the same script.
I’d suggest to use ‘time‘ command and also ‘vmstat‘ command. The first will give CPU usage of executable execution and second – periodic (i.e. once per second) dump of CPU/memory/IO of the system.
Example: