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

Proposed by Tristan Seligmann
Status: Merged
Merged at revision: 2720
Proposed branch: lp:~divmod-dev/divmod.org/1208298-batch-deletion-benchmark
Merge into: lp:divmod.org
Diff against target: 49 lines (+45/-0)
1 file modified
Axiom/benchmark/batch-deletion (+45/-0)
To merge this branch: bzr merge lp:~divmod-dev/divmod.org/1208298-batch-deletion-benchmark
Reviewer Review Type Date Requested Status
Laurens Van Houtven Approve
Review via email: mp+178485@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Laurens Van Houtven (lvh) wrote :

LGTM.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file 'Axiom/benchmark/batch-deletion'
2--- Axiom/benchmark/batch-deletion 1970-01-01 00:00:00 +0000
3+++ Axiom/benchmark/batch-deletion 2013-08-05 03:05:33 +0000
4@@ -0,0 +1,45 @@
5+#!/usr/bin/python
6+
7+# Benchmark of batch Item deletion. Accepts no parameters. Reports one
8+# statistic, the number of milliseconds it takes to batch delete an Item.
9+
10+import sys, time
11+
12+from axiom.store import Store
13+from axiom.attributes import integer
14+
15+import benchlib
16+
17+
18+def benchmark():
19+ SomeItem = benchlib.itemTypeWithSomeAttributes([integer])
20+
21+ store = Store()
22+ outerCounter = range(10)
23+ innerCounter = range(1000)
24+
25+ def _create():
26+ benchlib.createSomeItems(store, SomeItem, {}, innerCounter)
27+
28+ def _delete():
29+ store.query(SomeItem).deleteFromStore()
30+
31+ timer = 0.0
32+ for i in outerCounter:
33+ store.transact(_create)
34+ before = time.time()
35+ store.transact(_delete)
36+ after = time.time()
37+ timer += after - before
38+
39+ return timer * 1000 / (len(outerCounter) * len(innerCounter))
40+
41+
42+def main(argv):
43+ if len(argv) != 1:
44+ raise SystemExit("Usage: %s" % (argv[0],))
45+ print benchmark()
46+
47+
48+if __name__ == '__main__':
49+ main(sys.argv)

Subscribers

People subscribed via source and target branches

to all changes: