static long[] linux_cpuLoad_parse() { S line = first(toLines(loadTextFile("/proc/stat"))); S[] CPU = line.split("\\s+"); long IDLE = parseLong(CPU[4]); //Get the idle CPU time. long TOTAL = parseLong(CPU[1]) + parseLong(CPU[2]) + parseLong(CPU[3]) + parseLong(CPU[4]); ret new long[] { IDLE, TOTAL }; } static float linux_cpuLoad() { long[] a = linux_cpuLoad_parse(); sleepSeconds(1); long[] b = linux_cpuLoad_parse(); long DIFF_IDLE = b[0] - a[0]; long DIFF_TOTAL = b[1] - a[1]; float DIFF_USAGE = DIFF_TOTAL == 0 ? 0 : 100f * (DIFF_TOTAL - DIFF_IDLE) / DIFF_TOTAL; ret DIFF_USAGE; }