/** Returns a size string using metric suffixes from {@link ByteSizeStrings#metric()}, e.g. 23.5MB */ public static String makeSizeString(long sizeInBytes) { return ByteSizeStrings.metric().makeSizeString(sizeInBytes); }
@Override public void formatTo(Formatter formatter, int flags, int width, int precision) { boolean alternate = (flags & FormattableFlags.ALTERNATE) == FormattableFlags.ALTERNATE; ByteSizeStrings strings = alternate ? ByteSizeStrings.metric() : ByteSizeStrings.this; if (precision != -1) { formatter.format("%s", strings.makeSizeString(bytes, precision)); } else { formatter.format("%s", strings.makeSizeString(bytes)); } } };
/** Setup renderer hints for the MXBean attributes. */ public static void init() { if (initialized.getAndSet(true)) return; RendererHints.register(UsesJavaMXBeans.USED_HEAP_MEMORY, RendererHints.displayValue(ByteSizeStrings.metric())); RendererHints.register(UsesJavaMXBeans.INIT_HEAP_MEMORY, RendererHints.displayValue(ByteSizeStrings.metric())); RendererHints.register(UsesJavaMXBeans.MAX_HEAP_MEMORY, RendererHints.displayValue(ByteSizeStrings.metric())); RendererHints.register(UsesJavaMXBeans.COMMITTED_HEAP_MEMORY, RendererHints.displayValue(ByteSizeStrings.metric())); RendererHints.register(UsesJavaMXBeans.NON_HEAP_MEMORY_USAGE, RendererHints.displayValue(ByteSizeStrings.metric())); RendererHints.register(UsesJavaMXBeans.TOTAL_PHYSICAL_MEMORY_SIZE, RendererHints.displayValue(ByteSizeStrings.metric())); RendererHints.register(UsesJavaMXBeans.FREE_PHYSICAL_MEMORY_SIZE, RendererHints.displayValue(ByteSizeStrings.metric())); RendererHints.register(UsesJavaMXBeans.START_TIME, RendererHints.displayValue(Time.toDateString())); RendererHints.register(UsesJavaMXBeans.UP_TIME, RendererHints.displayValue(Duration.millisToStringRounded())); RendererHints.register(UsesJavaMXBeans.PROCESS_CPU_TIME, RendererHints.displayValue(Duration.millisToStringRounded())); RendererHints.register(UsesJavaMXBeans.PROCESS_CPU_TIME_FRACTION_LAST, RendererHints.displayValue(MathFunctions.percent(4))); RendererHints.register(UsesJavaMXBeans.PROCESS_CPU_TIME_FRACTION_IN_WINDOW, RendererHints.displayValue(MathFunctions.percent(4))); }
/** * Setup renderer hints. */ public static void init() { if (initialized.getAndSet(true)) return; final Function<Double, Long> longValue = new Function<Double, Long>() { @Override public Long apply(@Nullable Double input) { if (input == null) return null; return input.longValue(); } }; RendererHints.register(CPU_USAGE, RendererHints.displayValue(MathFunctions.percent(2))); RendererHints.register(AVERAGE_CPU_USAGE, RendererHints.displayValue(MathFunctions.percent(2))); RendererHints.register(USED_MEMORY_PERCENT, RendererHints.displayValue(MathFunctions.percent(2))); RendererHints.register(AVERAGE_USED_MEMORY_PERCENT, RendererHints.displayValue(MathFunctions.percent(2))); RendererHints.register(FREE_MEMORY, RendererHints.displayValue(Functionals.chain(MathFunctions.times(1000L), ByteSizeStrings.metric()))); RendererHints.register(TOTAL_MEMORY, RendererHints.displayValue(Functionals.chain(MathFunctions.times(1000L), ByteSizeStrings.metric()))); RendererHints.register(USED_MEMORY, RendererHints.displayValue(Functionals.chain(MathFunctions.times(1000L), ByteSizeStrings.metric()))); RendererHints.register(USED_MEMORY_DELTA_PER_SECOND_LAST, RendererHints.displayValue(Functionals.chain(longValue, ByteSizeStrings.metric()))); RendererHints.register(USED_MEMORY_DELTA_PER_SECOND_IN_WINDOW, RendererHints.displayValue(Functionals.chain(longValue, ByteSizeStrings.metric()))); }
assertEquals(ByteSizeStrings.parse("1k", "m", ByteSizeStrings.metric()), 1000);
long upDownTimeMillisPerIter = sF.elapsed(TimeUnit.MILLISECONDS)/NUM_ITERS; log.info(JavaClassNames.niceClassAndMethod()+" PER ITER (over "+NUM_ITERS+"): "+ ByteSizeStrings.metric().makeSizeString( memLeakBytesPerIter )+", "+ Duration.millis(upDownTimeMillisPerIter)+" per up+down, "+ Duration.millis(sG.elapsed(TimeUnit.MILLISECONDS)/NUM_ITERS)+" per up+down+gc"