changeset 4219:ce1265ca021a

First very basic in-circuit benchmark for WSGI
author Florian Krupicka <florian.krupicka@googlemail.com>
date Mon, 14 Jul 2008 19:06:25 +0200
parents 10fe93273b09
children 39b7dd8d0747
files raw_wsgi_bench.py
diffstat 1 files changed, 40 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/raw_wsgi_bench.py	Mon Jul 14 19:06:25 2008 +0200
@@ -0,0 +1,40 @@
+# -*- coding: utf-8 -*-
+"""
+    MoinMoin - raw_wsgi_bench
+
+    @copyright: 2008 MoinMoin:FlorianKrupicka
+    @license: GNU GPL, see COPYING for details.
+"""
+import time, itertools, sys, os
+
+from werkzeug.test import Client
+
+from MoinMoin.wsgiapp import application
+
+sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'tests'))
+
+RUNS = 100
+RUNS_MARKER = RUNS / 10
+DOTS_MARKER = RUNS_MARKER / 5
+
+PAGES = ('FrontPage', 'HelpOnMoinWikiSyntax', 'RecentChanges')
+
+client = Client(application)
+
+for page in PAGES:
+    print '=== Run with page "%s" ===' % page
+    print 'Running %i WSGI-requests:' % RUNS
+    timing = time.time()
+    for run in xrange(RUNS):
+        appiter, status, headers = client.get('/%s' % page)
+        #result = ''.join(appiter)
+        if ((run + 1) % RUNS_MARKER == 0):
+            sys.stdout.write('%i' % (run + 1))
+        elif ((run + 1) % DOTS_MARKER == 0):
+            sys.stdout.write('.')
+    timing = time.time() - timing
+
+    print
+    print 'Finished %i WSGI-requests in %.2f seconds' % (RUNS, timing)
+    print 'Time per request: %.4f seconds' % (timing / RUNS)
+    print 'Requests per second: %.2f' % (RUNS / timing)