[logback-dev] svn commit: r2289 - logback/trunk/logback-core/src/test/java/ch/qos/logback/core/issue
noreply.ceki at qos.ch
noreply.ceki at qos.ch
Sat Jun 13 23:42:34 CEST 2009
Author: ceki
Date: Sat Jun 13 23:42:34 2009
New Revision: 2289
Added:
logback/trunk/logback-core/src/test/java/ch/qos/logback/core/issue/NoLockingInJava.java (contents, props changed)
Modified:
logback/trunk/logback-core/src/test/java/ch/qos/logback/core/issue/LockingInJava.java
Log:
- Measure performance when no locking is present.
- We don't need to interrupt in LockingInJava
Modified: logback/trunk/logback-core/src/test/java/ch/qos/logback/core/issue/LockingInJava.java
==============================================================================
--- logback/trunk/logback-core/src/test/java/ch/qos/logback/core/issue/LockingInJava.java (original)
+++ logback/trunk/logback-core/src/test/java/ch/qos/logback/core/issue/LockingInJava.java Sat Jun 13 23:42:34 2009
@@ -11,11 +11,12 @@
static int THREAD_COUNT = 5;
static Object LOCK = new Object();
- static Runnable[] RUNNABLE_ARRAY = new Runnable[THREAD_COUNT];
+ static LockingInJava[] RUNNABLE_ARRAY = new LockingInJava[THREAD_COUNT];
static Thread[] THREAD_ARRAY = new Thread[THREAD_COUNT];
private int counter = 0;
-
+ private boolean done = false;
+
public static void main(String args[]) throws InterruptedException {
printEnvironmentInfo();
execute();
@@ -47,9 +48,9 @@
Thread.sleep(10000);
for (int i = THREAD_COUNT - 1; i <= 0; i--) {
- THREAD_ARRAY[i].interrupt();
+ RUNNABLE_ARRAY[i].done = true;
}
- Thread.sleep(100); // wait a moment for termination, to lazy for join ;)
+
}
public static void printResults() {
@@ -65,7 +66,9 @@
try {
Thread.sleep(10);
} catch (InterruptedException ex) {
- break;
+ }
+ if(done) {
+ return;
}
}
}
Added: logback/trunk/logback-core/src/test/java/ch/qos/logback/core/issue/NoLockingInJava.java
==============================================================================
--- (empty file)
+++ logback/trunk/logback-core/src/test/java/ch/qos/logback/core/issue/NoLockingInJava.java Sat Jun 13 23:42:34 2009
@@ -0,0 +1,74 @@
+package ch.qos.logback.core.issue;
+
+/**
+ * Measure throughput without any locking policy
+ *
+ * @author Joern Huxhorn
+ * @author Ceki Gulcu
+ */
+public class NoLockingInJava implements Runnable {
+
+ static int THREAD_COUNT = 5;
+ static Object LOCK = new Object();
+ static NoLockingInJava[] RUNNABLE_ARRAY = new NoLockingInJava[THREAD_COUNT];
+ static Thread[] THREAD_ARRAY = new Thread[THREAD_COUNT];
+
+ private int counter = 0;
+ private boolean done = false;
+
+ public static void main(String args[]) throws InterruptedException {
+ printEnvironmentInfo();
+ execute();
+ printResults();
+ }
+
+ public static void printEnvironmentInfo() {
+ System.out.println("java.runtime.version = "
+ + System.getProperty("java.runtime.version"));
+ System.out.println("java.vendor = "
+ + System.getProperty("java.vendor"));
+ System.out.println("java.version = "
+ + System.getProperty("java.version"));
+ System.out.println("os.name = "
+ + System.getProperty("os.name"));
+ System.out.println("os.version = "
+ + System.getProperty("os.version"));
+ }
+
+ public static void execute() throws InterruptedException {
+ for (int i = 0; i < THREAD_COUNT; i++) {
+ RUNNABLE_ARRAY[i] = new NoLockingInJava();
+ THREAD_ARRAY[i] = new Thread(RUNNABLE_ARRAY[i]);
+ }
+ for (Thread t : THREAD_ARRAY) {
+ t.start();
+ }
+ // let the threads run for a while
+ Thread.sleep(10000);
+
+ for (int i = THREAD_COUNT - 1; i <= 0; i--) {
+ RUNNABLE_ARRAY[i].done = true;
+ }
+
+ }
+
+ public static void printResults() {
+ for (int i = 0; i < RUNNABLE_ARRAY.length; i++) {
+ System.out.println("runnable[" + i + "]: " + RUNNABLE_ARRAY[i]);
+ }
+ }
+
+ public void run() {
+ for (;;) {
+ counter++;
+ if (done) {
+ return;
+ }
+ }
+ }
+
+ public String toString() {
+ return "counter=" + counter;
+ }
+
+}
More information about the logback-dev
mailing list