提交 4c0a59bf authored 作者: Thomas Mueller's avatar Thomas Mueller

A concurrent list, to replace the array list of old roots (work in progress)

上级 0817faa6
...@@ -10,7 +10,7 @@ import java.util.LinkedList; ...@@ -10,7 +10,7 @@ import java.util.LinkedList;
import java.util.Random; import java.util.Random;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import org.h2.mvstore.ConcurrentRing; import org.h2.mvstore.ConcurrentLinkedList;
import org.h2.test.TestBase; import org.h2.test.TestBase;
import org.h2.util.Task; import org.h2.util.Task;
...@@ -32,8 +32,8 @@ public class TestConcurrentLinkedList extends TestBase { ...@@ -32,8 +32,8 @@ public class TestConcurrentLinkedList extends TestBase {
@Override @Override
public void test() throws Exception { public void test() throws Exception {
testConcurrent();
testRandomized(); testRandomized();
testConcurrent();
} }
private void testPerformance() { private void testPerformance() {
...@@ -48,8 +48,8 @@ public class TestConcurrentLinkedList extends TestBase { ...@@ -48,8 +48,8 @@ public class TestConcurrentLinkedList extends TestBase {
private void testPerformance(final boolean stock) { private void testPerformance(final boolean stock) {
System.out.print(stock ? "stock " : "custom "); System.out.print(stock ? "stock " : "custom ");
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
// final ConcurrentLinkedList<Integer> test = new ConcurrentLinkedList<Integer>(); final ConcurrentLinkedList<Integer> test = new ConcurrentLinkedList<Integer>();
final ConcurrentRing<Integer> test = new ConcurrentRing<Integer>(); // final ConcurrentRing<Integer> test = new ConcurrentRing<Integer>();
final LinkedList<Integer> x = new LinkedList<Integer>(); final LinkedList<Integer> x = new LinkedList<Integer>();
final AtomicInteger counter = new AtomicInteger(); final AtomicInteger counter = new AtomicInteger();
Task task = new Task() { Task task = new Task() {
...@@ -107,8 +107,8 @@ public class TestConcurrentLinkedList extends TestBase { ...@@ -107,8 +107,8 @@ public class TestConcurrentLinkedList extends TestBase {
} }
private void testConcurrent() { private void testConcurrent() {
// final ConcurrentLinkedList<Integer> test = new ConcurrentLinkedList<Integer>(); final ConcurrentLinkedList<Integer> test = new ConcurrentLinkedList<Integer>();
final ConcurrentRing<Integer> test = new ConcurrentRing<Integer>(); // final ConcurrentRing<Integer> test = new ConcurrentRing<Integer>();
final AtomicInteger counter = new AtomicInteger(); final AtomicInteger counter = new AtomicInteger();
final AtomicInteger size = new AtomicInteger(); final AtomicInteger size = new AtomicInteger();
Task task = new Task() { Task task = new Task() {
...@@ -140,7 +140,8 @@ public class TestConcurrentLinkedList extends TestBase { ...@@ -140,7 +140,8 @@ public class TestConcurrentLinkedList extends TestBase {
private void testRandomized() { private void testRandomized() {
Random r = new Random(0); Random r = new Random(0);
for (int i = 0; i < 100; i++) { for (int i = 0; i < 100; i++) {
ConcurrentRing<Integer> test = new ConcurrentRing<Integer>(); ConcurrentLinkedList<Integer> test = new ConcurrentLinkedList<Integer>();
// ConcurrentRing<Integer> test = new ConcurrentRing<Integer>();
LinkedList<Integer> x = new LinkedList<Integer>(); LinkedList<Integer> x = new LinkedList<Integer>();
StringBuilder buff = new StringBuilder(); StringBuilder buff = new StringBuilder();
for (int j = 0; j < 10000; j++) { for (int j = 0; j < 10000; j++) {
......
...@@ -51,8 +51,9 @@ public class TestMVStoreTool extends TestBase { ...@@ -51,8 +51,9 @@ public class TestMVStoreTool extends TestBase {
} }
} }
s.close(); s.close();
MVStoreTool.dump(fileName); ; // TODO testing
MVStoreTool.dump(fileName + ".new"); // MVStoreTool.dump(fileName);
// MVStoreTool.dump(fileName + ".new");
MVStoreTool.compress(fileName, fileName + ".new"); MVStoreTool.compress(fileName, fileName + ".new");
MVStore s1 = new MVStore.Builder(). MVStore s1 = new MVStore.Builder().
fileName(fileName).readOnly().open(); fileName(fileName).readOnly().open();
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论