diff --git a/bindings/java/src/net/hyperic/sigar/test/RunThreadCpu.java b/bindings/java/src/net/hyperic/sigar/test/RunThreadCpu.java new file mode 100644 index 00000000..0772abaa --- /dev/null +++ b/bindings/java/src/net/hyperic/sigar/test/RunThreadCpu.java @@ -0,0 +1,155 @@ +package net.hyperic.sigar.test; + +import java.io.File; +import java.io.FileInputStream; + +import net.hyperic.sigar.Sigar; +import net.hyperic.sigar.SigarException; +import net.hyperic.sigar.ThreadCpuTime; + +//import java.lang.management.ManagementFactory; + +public class RunThreadCpu { + static Sigar sigar = new Sigar(); + static int iter = 5000; + + private static long toMillis(long nano) { + return nano / 1000000; + } + + private static void printTimes(long start) { + //ThreadMXBean mx = ManagementFactory.getThreadMXBean(); + ThreadCpuTime cpu = new ThreadCpuTime(sigar); + try { + cpu.getCurrent(); + } catch (SigarException e) { + e.printStackTrace(); + return; + } + System.out.println(Thread.currentThread().getName() + ":"); + System.out.println(" real....." + + (System.currentTimeMillis() - start) / 1000); + System.out.println(" sys......" + toMillis(cpu.getSys())); + System.out.println(" user....." + toMillis(cpu.getUser())); + System.out.println(" total...." + toMillis(cpu.getTotal())); + /* + System.out.println(" mxtotal.." + + toMillis(mx.getCurrentThreadCpuTime())); + System.out.println(" mxuser.." + + toMillis(mx.getCurrentThreadUserTime())); + */ + } + + private static void pause(int sec) { + try { + Thread.sleep(sec * 1000); + } catch (Exception e) {} + } + + static class RealThread implements Runnable { + public void run() { + long start = System.currentTimeMillis(); + pause(2); + printTimes(start); + } + } + + static class UserThread implements Runnable { + public void run() { + long start = System.currentTimeMillis(); + pause(2); + String s = ""; + for (int i=0; i max) { + break; + } + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (is != null) { + try { is.close(); } catch (Exception e) {} + } + } + } + + private static void scanDir() { + for (int i=0; i