package com.emc.ecs.sync.util;
import org.apache.log4j.*;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
/**
* Created by cwikj on 10/30/2015.
*/
public class PerformanceWindowMultiTest {
private static PerformanceWindow pw;
public static void main(String[] args) throws Exception {
pw = new PerformanceWindow(500, 10);
// Pattern
String layoutString = "%d{yyyy-MM-dd HH:mm:ss} %-5p [%t] %c{1}:%L - %m%n";
PatternLayout layout = new PatternLayout(layoutString);
// Appender
Appender appender = new ConsoleAppender(layout, "System.err");
LogManager.getRootLogger().addAppender(appender);
LogManager.getRootLogger().setLevel(Level.TRACE);
ScheduledExecutorService se = Executors.newScheduledThreadPool(5);
System.out.println("Adding one @ 1000b/s");
se.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
pw.increment(1000);
}
}, 1, 1, TimeUnit.SECONDS);
Thread.sleep(10000);
System.out.println("Adding another @ 32kB/s");
se.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
pw.increment(32 * 1024);
}
}, 1, 1, TimeUnit.SECONDS);
Thread.sleep(10000);
System.out.println("Adding a fast one @ 1MB/s");
se.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
pw.increment(1024);
}
}, 1, 1, TimeUnit.MILLISECONDS);
Thread.sleep(10000);
System.out.println("Adding another fast one @ 100MB/s");
se.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
pw.increment(128*1024);
}
}, 1, 1, TimeUnit.MILLISECONDS);
Thread.sleep(100000);
System.exit(0);
}
}