Andriy Kornatskyy avatar Andriy Kornatskyy committed edcde98

Improved bigtable benchmark report by adding total number of calls and distinct functions used.

Comments (0)

Files changed (1)


 def run(number=100):
+    import profile
     from timeit import Timer
+    from pstats import Stats
     names = globals().keys()
     names = sorted([(name, globals()[name])
              for name in names if name.startswith('test_')])
+    print("                    msec    rps  tcalls  funcs")
     for name, test in names:
         if test:
             assert isinstance(test(), s)
             t = Timer(setup='from __main__ import %s as t' % name,
             t = t.timeit(number=number)
-            print('%-30s %.2fms  %.2frps' % (name[5:],
-                                            1000 * t / number,
-                                            number / t))
+            st = Stats(profile.Profile().runctx(
+                'test()', globals(), locals()))
+            print('%-17s %6.2f %6.2f %7d %6d' % (name[5:],
+                                                 1000 * t / number,
+                                                 number / t,
+                                                 st.total_calls,
+                                                 len(st.stats)))
-            print('%-30s not installed' % name[5:])
+            print('%-25s not installed' % name[5:])
 if __name__ == '__main__':
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.