Pyramidのベンチマーク

5ヶ月前にBottle、Flask、Falconの 比較 をしました。これは、それと極力条件を揃えてPyramidの比較を加えました。 Pyramidのバージョンは1.5.7です。

準備

前回は各フレームワークともに、ファイルを一つ用意するだけでしたが、Pyramidではそうはいかないので、ポイントとなるファイルの内容をここに記します。 $ pcreate -t starter を基礎にしています。

__init__.py

from pyramid.config import Configurator


def main(global_config, **settings):
    config = Configurator(settings=settings)
    config.add_route('index', '/{name}')
    config.scan()
    return config.make_wsgi_app()

view.py

import flask


app = flask.Flask(__name__)


@app.route('/<name>')
def index(name):
    return 'Hello {}'.format(name)

production.ini

[uwsgi]
http = 0.0.0.0:9000
pidfile = /var/run/pyramid_example.pid
master = true
chmod-socket = 666
thunder-lock = 1
honour-stdin = 1

ベンチマークスクリプト

前回のものと共通です。

from benchmarker import Benchmarker
import requests


loop = 1000

with Benchmarker(width=20) as bench:
    @bench("pyramid")
    def _(bm):
        [requests.get('http://localhost:9000/world') for _ in range(loop)]

結果

## benchmarker:         release 4.0.1 (for python)
## python version:      3.4.0
## python compiler:     GCC 4.8.2
## python platform:     Linux-3.13.0-53-generic-x86_64-with-Ubuntu-14.04-trusty
## python executable:   /usr/bin/python3
## cpu model:           Intel(R) Core(TM) i5-4200U CPU @ 1.60GHz  # 2299.252 MHz
## parameters:          loop=1, cycle=1, extra=0
##                        real    (total    = user    + sys)
pyramid                 2.8435    2.1100    1.8000    0.3100

## Ranking                real
pyramid                 2.8435  (100.0) ********************

## Matrix                 real    [01]
[01] pyramid            2.8435   100.0
##                        real    (total    = user    + sys)
pyramid                 2.8933    2.1700    1.7700    0.4000

## Ranking                real
pyramid                 2.8933  (100.0) ********************

## Matrix                 real    [01]
[01] pyramid            2.8933   100.0
##                        real    (total    = user    + sys)
pyramid                 2.7673    2.0700    1.7200    0.3500

## Ranking                real
pyramid                 2.7673  (100.0) ********************

## Matrix                 real    [01]
[01] pyramid            2.7673   100.0
##                        real    (total    = user    + sys)
pyramid                 2.9017    2.1700    1.8200    0.3500

## Ranking                real
pyramid                 2.9017  (100.0) ********************

## Matrix                 real    [01]
[01] pyramid            2.9017   100.0
##                        real    (total    = user    + sys)
pyramid                 2.8697    2.1200    1.8000    0.3200

## Ranking                real
pyramid                 2.8697  (100.0) ********************

## Matrix                 real    [01]
[01] pyramid            2.8697   100.0
結果のグラフ

やはり前回にベンチマークした軽量なフレームワークよりもほとんど遅いという結果になってしまいました。

コメント

2015 - 2017 (c) 成瀬基樹