The psutil code was not too hard to port to Julia:
idle_time(info::Sys.CPUinfo) = Int64(info.cpu_times!idle)
busy_time(info::Sys.CPUinfo) =
Int64(
info.cpu_times!user +
info.cpu_times!nice +
info.cpu_times!sys +
info.cpu_times!irq
)
period = 3 # seconds
usages = let
info = Sys.cpu_info()
busies = busy_time.(info)
idles = idle_time.(info)
sleep(period)
info = Sys.cpu_info()
busies = busy_time.(info) .- busies
idles = idle_time.(info) .- idles
busies ./ (idles .+ busies)
end
# This returns a Vector{Float64} with the CPU usage between 0.0 and 1.0