Skip to content

Commit

Permalink
Added basic benchmarks
Browse files Browse the repository at this point in the history
  • Loading branch information
mitsuhiko committed Jun 9, 2011
1 parent 6b676ac commit 178f605
Show file tree
Hide file tree
Showing 6 changed files with 71 additions and 0 deletions.
5 changes: 5 additions & 0 deletions bench/bench_basic.py
@@ -0,0 +1,5 @@
from markupsafe import escape


def run():
escape('<strong>Hello World!</strong>')
6 changes: 6 additions & 0 deletions bench/bench_largestring.py
@@ -0,0 +1,6 @@
from markupsafe import escape


def run():
string = '<strong>Hello World!</strong>' * 1000
escape(string)
6 changes: 6 additions & 0 deletions bench/bench_long_empty_string.py
@@ -0,0 +1,6 @@
from markupsafe import escape


def run():
string = 'Hello World!' * 1000
escape(string)
6 changes: 6 additions & 0 deletions bench/bench_long_suffix.py
@@ -0,0 +1,6 @@
from markupsafe import escape


def run():
string = '<strong>Hello World!</strong>' + 'x' * 100000
escape(string)
5 changes: 5 additions & 0 deletions bench/bench_short_empty_string.py
@@ -0,0 +1,5 @@
from markupsafe import escape


def run():
escape('Hello World!')
43 changes: 43 additions & 0 deletions 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.