jtop.js
来自「一个小公司要求给写的很简单的任务管理系统。」· JavaScript 代码 · 共 74 行
JS
74 行
/* * This code is "ported" from JTop demo. This file defines * 'jtop' function. jtop prints threads sorting by CPU time. * jtop can be called once or periodically from a timer thread. * To call this once, just call 'jtop()' in script console prompt. * To call jtop in a timer thread, you can use * * var t = setTimeout(function () { jtop(print); }, 2000); * * The above call prints threads in sorted order for every 2 seconds. * The print output goes to OS console window from which jconsole was * started. The timer can be cancelled later by clearTimeout() function * as shown below: * * clearTimeout(t); *//** * This function returns a List of Map.Entry objects * in which each entry maps cpu time to ThreadInfo. */function getThreadList() { var tmbean = newPlatformMXBeanProxy( "java.lang:type=Threading", java.lang.management.ThreadMXBean); if (!tmbean.isThreadCpuTimeSupported()) { return; } tmbean.setThreadCpuTimeEnabled(true); var tids = tmbean.allThreadIds; var tinfos = tmbean["getThreadInfo(long[])"](tids); var map = new java.util.TreeMap(); for (var i in tids) { var cpuTime = tmbean.getThreadCpuTime(tids[i]); if (cpuTime != -1 && tinfos[i] != null) { map.put(cpuTime, tinfos[i]); } } var list = new java.util.ArrayList(map.entrySet()); java.util.Collections.reverse(list); return list;}/** * This function prints threads sorted by CPU time. * * @param printFunc function called back to print [optional] * * By default, it uses 'echo' function to print in screen. * Other choices could be 'print' (prints in console), 'alert' * to show message box. Or you can define a function that writes * the output to a text file. */ function jtop(printFunc) { if (printFunc == undefined) { printFunc = echo; } var list = getThreadList(); var itr = list.iterator(); printFunc("time - state - name"); while (itr.hasNext()) { var entry = itr.next(); // time is in nanoseconds - convert to seconds var time = entry.key / 1.0e9; var name = entry.value.threadName; var state = entry.value.threadState; printFunc(time + " - " + state + " - " + name); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?