divmod-dev team mailing list archive
-
divmod-dev team
-
Mailing list archive
-
Message #00490
[Merge] lp:~divmod-dev/divmod.org/1208300-powerup-loading-benchmark into lp:divmod.org
Tristan Seligmann has proposed merging lp:~divmod-dev/divmod.org/1208300-powerup-loading-benchmark into lp:divmod.org.
Requested reviews:
Divmod-dev (divmod-dev)
Related bugs:
Bug #1208300 in Divmod Axiom: "Benchmark for powerup loading"
https://bugs.launchpad.net/divmod-axiom/+bug/1208300
For more details, see:
https://code.launchpad.net/~divmod-dev/divmod.org/1208300-powerup-loading-benchmark/+merge/178486
--
https://code.launchpad.net/~divmod-dev/divmod.org/1208300-powerup-loading-benchmark/+merge/178486
Your team Divmod-dev is requested to review the proposed merge of lp:~divmod-dev/divmod.org/1208300-powerup-loading-benchmark into lp:divmod.org.
=== added file 'Axiom/benchmark/powerup-loading'
--- Axiom/benchmark/powerup-loading 1970-01-01 00:00:00 +0000
+++ Axiom/benchmark/powerup-loading 2013-08-05 03:16:25 +0000
@@ -0,0 +1,58 @@
+#!/usr/bin/python
+
+# Benchmark of Axiom powerup loading. Accepts no parameters. Reports one
+# statistic, the number of milliseconds it takes to query for powerups after they
+# have already been queried for once.
+
+
+import sys, time
+
+from zope.interface import Interface
+
+from axiom.store import Store
+from axiom.attributes import integer
+
+import benchlib
+
+
+class IPowerup(Interface):
+ """
+ Empty interface to use for powerups.
+ """
+
+
+def benchmark():
+ SomeItem = benchlib.itemTypeWithSomeAttributes([integer])
+
+ store = Store()
+ items = []
+ for i in range(10):
+ item = SomeItem(store=store)
+ store.powerUp(item, IPowerup)
+ items.append(item)
+
+
+ def _getPowerups(counter):
+ for i in counter:
+ list(store.powerupsFor(IPowerup))
+
+
+ # cache the powerups first
+ store.transact(_getPowerups, range(1))
+
+ counter = range(1000)
+ before = time.time()
+ store.transact(_getPowerups, counter)
+ after = time.time()
+
+ return (after - before) * 1000 / (len(counter))
+
+
+def main(argv):
+ if len(argv) != 1:
+ raise SystemExit("Usage: %s")
+ print benchmark()
+
+
+if __name__ == '__main__':
+ main(sys.argv)
Follow ups