5
私はcouchdbと推奨される "couchdbkit" pythonパッケージで遊んでいました。私はそれが少し遅いと感じ、いくつかの測定をすることに決めました。私が何か間違っていないなら、一般的な "要求"パッケージを使うことはcouchdbkitを使うよりも10倍以上高速です。どうして?couchdbkitはリクエストより10倍遅いですか?
from time import time as now
from pprint import pprint
class Timer:
def __init__(self):
self.current = now()
def __call__(self, msg):
snap = now()
duration = snap - self.current
self.current = snap
pprint("%.3f duration -- %s" %(duration, msg))
def requests(num):
t = Timer()
import requests
for i in range(num):
r = requests.get("http://127.0.0.1:8001/releases/_design/access/_view/yieldlinks")
assert r.status_code == 200
r.json # make sure the json is there
t("requests: %d" % (num,))
def couchdbkit(num):
import couchdbkit
t = Timer()
server = couchdbkit.Server("http://127.0.0.1:8001")
releases = server.get_db("releases")
for x in range(num):
for x in releases.view("access/yieldlinks"):
pass
t("couchdbkit: %d" %(num,))
num = 500
requests(num)
couchdbkit(num)
をあなたはおそらくビューのURLを変更する必要がある例を実行するために:ここで
は私が使用されるタイミングスクリプトです。私は2つの呼び出しがサーバー上でまったく同じGET要求を引き起こすことを確認しました。だから、これは本当にcouchdbkitの内部作業に関係しているようですね!
CouchdbkitはRestkit(https://github.com/benoitc/restkit)を使用しています。これを比較して、それがボトルネックかどうかを直接確認することができます。 – mwhite
私はcouchdb-usersのリストについても議論しています。 Benoitはそれを調べます。 – hpk42