view contrib/raw_wsgi_bench.py @ 6111:1fdd537e9d83

SubProcess: reimplement exec_cmd subclassing Popen and overriding some methods isn't pretty. the code we have was written for py 2.4 or so and the py 2.7 Popen looked quite different. this way with the timer should be less problematic.
author Thomas Waldmann <tw AT waldmann-edv DOT de>
date Tue, 06 Sep 2016 04:39:28 +0200
parents 1d3d282130c8
children
line wrap: on
line source
# -*- 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)