• # Python, bottle, bjoern

    Posté par (Mastodon) . En réponse au journal TapTempo du Web en SQL avec SQLPage. Évalué à 6.

    La machine : 4 coeurs, 8 threads, Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz

    Ça utilise une app WSGI en bottle, avec bjoern comme backend.
    Le code de taptempo.py, la ligne en commentaire est la façon simple de faire en bottle, mais les perfs sont bien moins bonnes, elles seront entre parenthèses dans le rapport en bas :

    #!/usr/bin/python3
    import bottle
    @bottle.route('/')
    def index():
     bottle.response.status = 303
     bottle.response.set_header('Location', 'http://example.com')
     # bottle.redirect('http://example.com')
    bottle.run(host='0.0.0.0', port=8080, server='bjoern')

    La mise en place (nécessite libev) :

    mkdir taptempo && cd taptempo
    python3 -m venv venv --prompt taptempo
    source ./venv/bin/activate
    pip install bottle bjoern
    python3 taptempo.py

    Les résultats :

    ab -n 100000 -c 10 -e /tmp/profile.csv 'http://localhost:8080'
    This is ApacheBench, Version 2.3 <$Revision: 1903618 $>
    Concurrency Level: 10
    Time taken for tests: 7.241 seconds (12.233 seconds)
    Complete requests: 100000
    Failed requests: 0
    Requests per second: 13809.69 (8174.30) [#/sec] (mean)
    Time per request: 0.724 (1.223) [ms] (mean)
    Time per request: 0.072 (0.122) [ms] (mean, across all concurrent requests)
    Transfer rate: 1807.13 (1037.75) [Kbytes/sec] received
    Connection Times (ms)
     min mean[+/-sd] median max
    Connect: 0(0) 0 0.0(0.0) 0 1
    Processing: 0(1) 1 0.2(0.3) 1 3(7)
    Waiting: 0(1) 1 0.2(0.3) 1 3(7)
    Total: 0(1) 1 0.2(0.3) 1 3(7)
    Percentage of the requests served within a certain time (ms)
     50% 1(1)
     66% 1(1)
     75% 1(1)
     80% 1(1)
     90% 1(2)
     95% 1(2)
     98% 1(2)
     99% 1(2)
     100% 3(7) (longest request)

    Je n'ai pas la moindre idée de ce que ça donnerait avec ton CPU, tu dois pouvoir tester et comparer.

    • Yth.