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はまだWindowsに対応していないと思います
私はこれを試していませんが、ctypesはプラットフォームに依存しません。AFAICTあなたはちょうどそれを確認する必要がありますlibpq.dll
ライブラリがロード可能(PATH環境変数内のディレクトリまたはローカルディレクトリにある)であり、WindowsでもLinuxと同じように機能ます。
pypy-postgresql
Alex Gaynorがpypy-postgresqlと呼ばれるPyPyのフォークを作成したことはわかります。
これは長期的には良い選択ではないと思います。ブランチは1年以上更新されておらず、ブランチを構築する私の試みは失敗しました。とにかく、インタプリタでPostgreSQLドライバをハードコードするのは間違っているようです。
pypy-postgresqlのバイナリも存在しないと思いますので、それを使用したい場合は、PyPyブランチ全体を自分で構築する必要があります。心臓の弱い人には向いていません。数十分で、4 GB以上のメモリを搭載したマシンが必要です。(公式指示:http : //pypy.org/download.html#building-from-source)
ビルドするには、最初にソースが必要です。Mercurialがインストールされている場合は、簡単にできますhg clone https://bitbucket.org/alex_gaynor/pypy-postgresql
。そうでない場合は、automagicの「tip」zipファイルをダウンロードできます。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
」というエラーが表示される