1 package org.slf4j.profiler; 2 3 /** 4 * 5 * This demo illustrates usage of SLF4J profilers. 6 * 7 * <p> 8 * We have been given the task of generating a large number, say N, of random 9 * integers. We need to transform that array into a smaller array containing 10 * only prime numbers. The new array has to be sorted. 11 * 12 * <p> 13 * While tackling this problem, we would like to measure the time spent in each 14 * subtask. 15 * 16 * <p> 17 * A typical output for this demo would be: 18 * 19 * <pre> 20 + Profiler [BASIC] 21 |-- elapsed time [A] 213.186 milliseconds. 22 |-- elapsed time [B] 2499.107 milliseconds. 23 |-- elapsed time [OTHER] 3300.752 milliseconds. 24 |-- Total [BASIC] 6014.161 milliseconds. 25 </pre> 26 * 27 * @author Ceki Gulcu 28 */ 29 public class BasicProfilerDemo { 30 31 public static void main(String[] args) { 32 // create a profiler called "BASIC" 33 Profiler profiler = new Profiler("BASIC"); 34 profiler.start("A"); 35 doA(); 36 37 profiler.start("B"); 38 doB(); 39 40 profiler.start("OTHER"); 41 doOther(); 42 profiler.stop().print(); 43 } 44 45 static private void doA() { 46 delay(200); 47 } 48 49 static private void doB() { 50 delay(2500); 51 } 52 53 static private void doOther() { 54 delay(3300); 55 } 56 57 static private void delay(int millis) { 58 try { 59 Thread.sleep(millis); 60 } catch (InterruptedException e) { 61 } 62 } 63 }