मैं couchdb और अनुशंसित "couchdbkit" पायथन पैकेज के साथ खेल रहा था। मुझे लगा कि यह थोड़ा धीमा था और कुछ माप करने का फैसला किया। अगर मैंने कुछ गलत नहीं किया है, तो लोकप्रिय "अनुरोध" पैकेज का उपयोग करके couchdbkit के माध्यम से जाने से 10 गुना तेज है। क्यूं कर?couchdbkit 10x धीमी है?
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 को संशोधित करने की जरूरत है चल के लिए:
यहाँ समय स्क्रिप्ट मैं प्रयोग किया जाता है। मैंने सत्यापित किया कि दो आमंत्रण सर्वर पर सटीक उसी GET अनुरोधों का कारण बनते हैं। तो यह वास्तव में couchdbkit के भीतरी काम से संबंधित लगता है ?!
Couchdbkit Restkit (https://github.com/benoitc/restkit) का उपयोग करता है, तो आप इसकी तुलना कर सकते हैं और यह देखने के लिए सीधे अनुरोध कर सकते हैं कि यह बाधा है या नहीं। – mwhite
मैं इस मुद्दे के बारे में couchdb-users सूची पर भी चर्चा कर रहा हूं। बेनोइट इसे देखने जा रहा है। – hpk42