public void benchmark()

in metrics-core/src/benchmarks/java/com/amazon/metrics/DoubleFormatTest.java [146:170]


    public void benchmark() throws Exception {
        final long iterations = 1000000;

        long duration_StringFormat = run_benchmark(iterations, (a) -> String.format("%.6f", a));

        NumberFormat javaFormatter = NumberFormat.getInstance();
        javaFormatter.setMinimumFractionDigits(0);
        javaFormatter.setMaximumFractionDigits(6);
        javaFormatter.setGroupingUsed(false);
        long duration_JavaFormat = run_benchmark(iterations, (a) -> javaFormatter.format(a));

        long duration_JavaStringBuilder = run_benchmark(iterations, (a) -> (new StringBuilder()).append(a));

        long duration_DoubleFormat = run_benchmark(iterations, (a) -> DoubleFormat.format(new StringBuilder(), a));

        System.out.println("DoubleFormat Performance comparison: " + iterations +" iterations");
        System.out.println("\tJava String.format: " + duration_StringFormat + " ms");
        System.out.println("\tJava NumberFormat:  " + duration_JavaFormat + " ms");
        System.out.println("\tJava StringBuilder: " + duration_JavaStringBuilder + " ms");
        System.out.println("\tDoubleFormat:       " + duration_DoubleFormat + " ms");

        assertTrue(duration_DoubleFormat < duration_StringFormat);
        assertTrue(duration_DoubleFormat < duration_JavaFormat);
        assertTrue(duration_DoubleFormat < duration_JavaStringBuilder);
    }