Browse files

Added basic benchmarks

  • Loading branch information...
1 parent 6b676ac commit 178f60584374bfc10ac257c74bcc2c36dffff7c9 @mitsuhiko mitsuhiko committed Jun 9, 2011
View
5 bench/bench_basic.py
@@ -0,0 +1,5 @@
+from markupsafe import escape
+
+
+def run():
+ escape('<strong>Hello World!</strong>')
View
6 bench/bench_largestring.py
@@ -0,0 +1,6 @@
+from markupsafe import escape
+
+
+def run():
+ string = '<strong>Hello World!</strong>' * 1000
+ escape(string)
View
6 bench/bench_long_empty_string.py
@@ -0,0 +1,6 @@
+from markupsafe import escape
+
+
+def run():
+ string = 'Hello World!' * 1000
+ escape(string)
View
6 bench/bench_long_suffix.py
@@ -0,0 +1,6 @@
+from markupsafe import escape
+
+
+def run():
+ string = '<strong>Hello World!</strong>' + 'x' * 100000
+ escape(string)
View
5 bench/bench_short_empty_string.py
@@ -0,0 +1,5 @@
+from markupsafe import escape
+
+
+def run():
+ escape('Hello World!')
View
43 bench/runbench.py
@@ -0,0 +1,43 @@
+#!/usr/bin/env python
+"""
+ Runs the benchmarks
+"""
+import sys
+import os
+import re
+from subprocess import Popen
+
+_filename_re = re.compile(r'^bench_(.*?)\.py$')
+bench_directory = os.path.abspath(os.path.dirname(__file__))
+
+
+def list_benchmarks():
+ result = []
+ for name in os.listdir(bench_directory):
+ match = _filename_re.match(name)
+ if match is not None:
+ result.append(match.group(1))
+ result.sort(key=lambda x: (x.startswith('logging_'), x.lower()))
+ return result
+
+
+def run_bench(name):
+ sys.stdout.write('%-32s' % name)
+ sys.stdout.flush()
+ Popen([sys.executable, '-mtimeit', '-s',
+ 'from bench_%s import run' % name,
+ 'run()']).wait()
+
+
+def main():
+ print '=' * 80
+ print 'Running benchmark for MarkupSafe'
+ print '-' * 80
+ os.chdir(bench_directory)
+ for bench in list_benchmarks():
+ run_bench(bench)
+ print '-' * 80
+
+
+if __name__ == '__main__':
+ main()

0 comments on commit 178f605

Please sign in to comment.