mirror of
https://github.com/Febbweiss/log-generator.git
synced 2026-03-04 22:25:40 +00:00
Add JCommander parser
This commit is contained in:
9
pom.xml
9
pom.xml
@@ -37,7 +37,8 @@
|
|||||||
<!-- Dependencies versions -->
|
<!-- Dependencies versions -->
|
||||||
<slf4j.version>1.7.5</slf4j.version>
|
<slf4j.version>1.7.5</slf4j.version>
|
||||||
<logback.version>1.0.13</logback.version>
|
<logback.version>1.0.13</logback.version>
|
||||||
|
<jcommander.version>1.30</jcommander.version>
|
||||||
|
|
||||||
<maven.versions>[2.2.1, 3.1.0)</maven.versions>
|
<maven.versions>[2.2.1, 3.1.0)</maven.versions>
|
||||||
<java.version>1.6</java.version>
|
<java.version>1.6</java.version>
|
||||||
<maven.shade.plugin>2.1</maven.shade.plugin>
|
<maven.shade.plugin>2.1</maven.shade.plugin>
|
||||||
@@ -78,6 +79,12 @@
|
|||||||
<scope>runtime</scope>
|
<scope>runtime</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.beust</groupId>
|
||||||
|
<artifactId>jcommander</artifactId>
|
||||||
|
<version>${jcommander.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!-- Junit -->
|
<!-- Junit -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>junit</groupId>
|
<groupId>junit</groupId>
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package com.github.vspiewak.loggenerator;
|
package com.github.vspiewak.loggenerator;
|
||||||
|
|
||||||
|
import com.beust.jcommander.JCommander;
|
||||||
|
import com.beust.jcommander.ParameterException;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
@@ -11,42 +13,38 @@ public class App {
|
|||||||
private static final Logger log = LoggerFactory.getLogger(App.class);
|
private static final Logger log = LoggerFactory.getLogger(App.class);
|
||||||
private static AtomicLong counter = new AtomicLong(0);
|
private static AtomicLong counter = new AtomicLong(0);
|
||||||
|
|
||||||
public static final long DEFAULT_NB_LOGS = 100;
|
|
||||||
public static final int DEFAULT_NB_THREAD = 2;
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|
||||||
long nbLogsToGenerate = DEFAULT_NB_LOGS;
|
InputParameters params = new InputParameters();
|
||||||
int nbThreads = DEFAULT_NB_THREAD;
|
JCommander commander = new JCommander(params);
|
||||||
|
try {
|
||||||
if(args.length > 0) {
|
commander.parse(args);
|
||||||
try {
|
} catch (ParameterException e) {
|
||||||
nbLogsToGenerate = Long.parseLong(args[0]);
|
commander.usage();
|
||||||
} catch(NumberFormatException e) {
|
System.exit(1);
|
||||||
log.info("Usage: first argument must be the number of logs to generate");
|
|
||||||
System.exit(1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
log.trace("starting");
|
log.trace("starting");
|
||||||
|
|
||||||
long start_time = System.nanoTime();
|
LogExecutor executor = new LogExecutor(params.threads);
|
||||||
|
|
||||||
LogExecutor executor = new LogExecutor(nbThreads);
|
while (counter.get() < params.logs) {
|
||||||
|
|
||||||
while (counter.get() < nbLogsToGenerate) {
|
|
||||||
long number = counter.incrementAndGet();
|
long number = counter.incrementAndGet();
|
||||||
SearchTask aSearchTask = new SearchTask(number);
|
SearchTask aSearchTask = new SearchTask(number);
|
||||||
SellTask aSellTask = new SellTask(number);
|
SellTask aSellTask = new SellTask(number);
|
||||||
executor.addAll(Arrays.asList(aSearchTask, aSellTask));
|
executor.addAll(Arrays.asList(aSearchTask, aSellTask));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log.trace("initialization done");
|
||||||
|
|
||||||
|
long start_time = System.nanoTime();
|
||||||
|
|
||||||
executor.execute();
|
executor.execute();
|
||||||
|
|
||||||
long end_time = System.nanoTime();
|
long end_time = System.nanoTime();
|
||||||
double difference = (end_time - start_time)/1e6;
|
double difference = (end_time - start_time) / 1e6;
|
||||||
|
|
||||||
log.trace("generated {} logs in {}ms using {} threads", counter.get(), (int)difference, nbThreads);
|
log.trace("generated {} logs in {}ms using {} threads", counter.get(), (int) difference, params.threads);
|
||||||
log.trace("shutdown");
|
log.trace("shutdown");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.github.vspiewak.loggenerator;
|
||||||
|
|
||||||
|
import com.beust.jcommander.Parameter;
|
||||||
|
|
||||||
|
public class InputParameters {
|
||||||
|
|
||||||
|
@Parameter(names = { "-log", "-n" }, description = "Number of logs to generate")
|
||||||
|
public Long logs = 10L;
|
||||||
|
|
||||||
|
@Parameter(names = { "-threads", "-t" }, description = "Number of threads to use")
|
||||||
|
public Integer threads = 2;
|
||||||
|
|
||||||
|
@Parameter(names = "--help", help = true)
|
||||||
|
private boolean help;
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user