diff --git a/tools_scripts/lab/h2MVStoreTest.groovy b/tools_scripts/lab/h2MVStoreTest.groovy new file mode 100644 index 00000000..6bfa1f1e --- /dev/null +++ b/tools_scripts/lab/h2MVStoreTest.groovy @@ -0,0 +1,44 @@ +@Grab(group='com.h2database', module='h2-mvstore', version='1.4.192') +import org.h2.mvstore.* + +def fileName = "mvtest.h2" +if (args.size() == 1) { + fileName = args[1] +} +MVStore s = MVStore.open(fileName) +// create/get the map named "data" +MVMap map = s.openMap("data") + +numMessages = 10000000 + +println "Created store and starting" +long start = System.currentTimeMillis() +(1..numMessages).each { + String randomContent = UUID.randomUUID().toString() + // add and read some data + map.put(it, randomContent) +} +long stop = System.currentTimeMillis() +long contentSize = UUID.randomUUID().toString().bytes.length +println "Wrote $numMessages keys, ${numMessages * contentSize} bytes in ${stop - start} ms" +def writeSpeed = (numMessages * contentSize)/((stop - start)/ 1000) +println "Speed is: $writeSpeed byte/sec" + +// close the store (this will persist changes) +s.close() + +//The read part + +map = MVStore.open(fileName).openMap("data") +//read now 10M keys +start = System.currentTimeMillis() +(1..numMessages).each { + int key = (int) Math.floor(Math.random() * numMessages) + 1 + // add and read some data + String randomContent = map.get(key) +} + +stop = System.currentTimeMillis() +println "Read $numMessages keys, ${numMessages * contentSize} bytes in ${stop - start} ms" +def readSpeed = (numMessages * contentSize)/((stop - start)/ 1000) +println "Read speed is: $readSpeed byte/sec" diff --git a/tools_scripts/lab/squareTapeTest.groovy b/tools_scripts/lab/squareTapeTest.groovy new file mode 100644 index 00000000..42706bda --- /dev/null +++ b/tools_scripts/lab/squareTapeTest.groovy @@ -0,0 +1,16 @@ +@Grab(group='com.squareup', module='tape', version='1.2.3') +import com.squareup.tape.QueueFile + +byte[] content = UUID.randomUUID().toString().bytes//[0x0C, 0x0A, 0x0F, 0x0E, 0x0B, 0x0A, 0x0B, 0x0E] as byte[] + +numMessages = 10000 +def file = File.createTempFile("tape", ".bin") +println "Created tmp file" +QueueFile queue = new QueueFile(file) +println "Created queue and starting" +long start = System.currentTimeMillis() +(1..numMessages).each { + queue.add(content) +} +long stop = System.currentTimeMillis() +println "Wrote ${numMessages*content.length} bytes in ${stop-start} ms" \ No newline at end of file