← Back to team overview

divmod-dev team mailing list archive

[Merge] lp:~divmod-dev/divmod.org/1208298-batch-deletion-benchmark into lp:divmod.org

 

Tristan Seligmann has proposed merging lp:~divmod-dev/divmod.org/1208298-batch-deletion-benchmark into lp:divmod.org.

Requested reviews:
  Divmod-dev (divmod-dev)
Related bugs:
  Bug #1208298 in Divmod Axiom: "Benchmark for item batch deletion"
  https://bugs.launchpad.net/divmod-axiom/+bug/1208298

For more details, see:
https://code.launchpad.net/~divmod-dev/divmod.org/1208298-batch-deletion-benchmark/+merge/178485


-- 
https://code.launchpad.net/~divmod-dev/divmod.org/1208298-batch-deletion-benchmark/+merge/178485
Your team Divmod-dev is requested to review the proposed merge of lp:~divmod-dev/divmod.org/1208298-batch-deletion-benchmark into lp:divmod.org.
=== added file 'Axiom/benchmark/batch-deletion'
--- Axiom/benchmark/batch-deletion	1970-01-01 00:00:00 +0000
+++ Axiom/benchmark/batch-deletion	2013-08-05 03:05:33 +0000
@@ -0,0 +1,45 @@
+#!/usr/bin/python
+
+# Benchmark of batch Item deletion.  Accepts no parameters.  Reports one
+# statistic, the number of milliseconds it takes to batch delete an Item.
+
+import sys, time
+
+from axiom.store import Store
+from axiom.attributes import integer
+
+import benchlib
+
+
+def benchmark():
+    SomeItem = benchlib.itemTypeWithSomeAttributes([integer])
+
+    store = Store()
+    outerCounter = range(10)
+    innerCounter = range(1000)
+
+    def _create():
+        benchlib.createSomeItems(store, SomeItem, {}, innerCounter)
+
+    def _delete():
+        store.query(SomeItem).deleteFromStore()
+
+    timer = 0.0
+    for i in outerCounter:
+        store.transact(_create)
+        before = time.time()
+        store.transact(_delete)
+        after = time.time()
+        timer += after - before
+
+    return timer * 1000 / (len(outerCounter) * len(innerCounter))
+
+
+def main(argv):
+    if len(argv) != 1:
+        raise SystemExit("Usage: %s" % (argv[0],))
+    print benchmark()
+
+
+if __name__ == '__main__':
+    main(sys.argv)


Follow ups