psycopg2cffi (अपडेट किया गया 2015)
psycopg2cffi अभी तक एक और psycopg2-संगत प्रतिस्थापन है और इसे PyPy के साथ सर्वश्रेष्ठ PostgreSQL प्रदर्शन प्रदान करना चाहिए। इसे अपने settings.py
. में जोड़ें दोनों के साथ संगत रहने के लिए:
try:
import psycopg2
except ImportError:
# Fall back to psycopg2cffi
from psycopg2cffi import compat
compat.register()
psycopg2-ctypes (2012)
<ब्लॉकक्वॉट>मुझे यह भी पता है कि कुछ लोग psycopg2-ctypes का उपयोग कर रहे हैं।
यह सबसे आसान तरीका है; दोनों के साथ संगत रहने के लिए, बस इस कोड को अपने Django settings.py
. में जोड़ें :
try:
import psycopg2
except ImportError:
# Fall back to psycopg2-ctypes
from psycopg2ct import compat
compat.register()
मैंने कुछ रिलीज पहले इसका परीक्षण किया; दुख की बात है कि मेरे अनुभव में, psycopg2-ctypes PyPy द्वारा वहन किए गए छोटे प्रदर्शन लाभ को नकारता है। लेकिन YMMV, यह इस बात पर निर्भर करता है कि आपका कोड सामान्य रूप से JIT के अनुकूल कैसे है और आप वास्तव में Python कोड को चलाने में कितना समय बिताते हैं। और शायद तब से PyPy में अभी सुधार हुआ है।
<ब्लॉकक्वॉट>और मुझे नहीं लगता कि psycopg2-ctypes अभी विंडोज़ के लिए तैयार है
मैंने यह कोशिश नहीं की है, लेकिन ctypes प्लेटफॉर्म-स्वतंत्र है। AFAICT आपको बस यह सुनिश्चित करना है कि libpq.dll
पुस्तकालय लोड करने योग्य है (आपके PATH पर्यावरण चर या स्थानीय निर्देशिका में एक निर्देशिका में स्थित है) और इसे लिनक्स की तरह ही विंडोज़ पर काम करना चाहिए।
pypy-postgresql
<ब्लॉकक्वॉट>मैं देख रहा हूँ कि एलेक्स गेन्नोर ने PyPy का एक कांटा बनाया है जिसे pypy-postgresql कहा जाता है।
मुझे नहीं लगता कि लंबी अवधि में यह एक अच्छा विकल्प है। शाखा को एक वर्ष से अधिक समय से अद्यतन नहीं किया गया है और इसे बनाने के मेरे प्रयास विफल रहे हैं। और वैसे भी दुभाषिया में PostgreSQL ड्राइवर को हार्ड-कोड करना गलत लगता है।
मेरा मानना है कि वहाँ pypy-postgresql की कोई बायनेरिज़ नहीं है, इसलिए यदि आप इसका उपयोग करना चाहते हैं, तो आपको पूरी PyPy शाखा स्वयं बनाने की आवश्यकता होगी। बेहोश दिल के लिए नहीं:इसमें दसियों मिनट और कम से कम 4 जीबी मेमोरी वाली मशीन लगती है। (आधिकारिक निर्देश:http://pypy.org/download.html#build-from-source)
निर्माण करने के लिए, आपको पहले स्रोत की आवश्यकता है। यदि आपके पास Mercurial स्थापित है, तो आप बस hg clone https://bitbucket.org/alex_gaynor/pypy-postgresql
कर सकते हैं। . यदि नहीं, तो आप स्वचालित "टिप" ज़िप फ़ाइल डाउनलोड कर सकते हैं:https://bitbucket.org/alex_gaynor/pypy-postgresql/get/tip.zip
एक कमांड लाइन खोलें, डीकंप्रेस्ड डायरेक्टरी में जाएं, और फिर pypy/translator/goal
के अंदर जाएं।
यदि आपके पास PyPy स्थापित है, तो इसे भवन निर्माण के लिए उपयोग करने की अनुशंसा की जाती है:
pypy translate.py -Ojit
अन्यथा:
python translate.py -Ojit
दुख की बात है कि यहीं पर मेरा ज्ञान समाप्त हो जाता है। मुझे त्रुटि मिलती है "BytecodeCorruption: unimplemented opcode, ofs=234, code=203, name=BUILD_LIST_FROM_ARG
"