PyPy! - PyPy Advend Calendar

今年も Advent Calendar の季節が始まりました。この記事は Python を高速化するソリューション PyPy の Advent Calendar の記事です。最初なので、簡単に PyPy の概要と PyPy-ja のご紹介をしたいと思います。

>>>> PyPy ってなんなの?

PyPyは日本語で、おっぱいの意味なんだよ ってUSのpythonやってるエンジニアに教えたら「今日ほどいい日はない!って大喜びしてた」
Oct 06 via webFavoriteRetweetReply

PyPy は Python 2.7.1 互換の高速な処理系です。現在、着々と py3k 対応の開発も進んでいます。Python 標準処理系である CPython と比較して以下のような特徴があります。
  • 速度: とにかく速いです。JIT パワーです。CPython と PyPy の速度はここに公開されています。現在は CPython の 5 倍ぐらい速いですね。特定の環境では Java より速いという計測結果もあります。ちなみに先日 Win32 環境で同じ計測をしましたが、Win32 環境では pypy 1.6 以降で Java よりも高速という結果がでましたよ。残念ながら 1.7 より 1.6 の方が高速という結果でしたが。。。
  • メモリ使用量: 多い。ほんとにメモリ食います。JIT の作者 Antonio 氏に Python 生みの親の Guide (oh...) Guido 氏が "PyPy の JIT はなんで速いの?" と質問した時に、"オブジェクトが持っているデータをメモリ上の固定位置に配置してるのが効いているみたい" と答えたとのことです (ats さんのブログより)。なるほど。
  • 互換性: 一部制限がありますが Python との互換性は高いです。1.7 になってさらに互換性が高まっています。動作する Python ライブラリはここにまとまっています。"このライブラリも動いたよ!" って方は是非この Wiki を編集してみてください。Django, Flask, Pyramid などのメジャー Web アプリケーションフレームワークや Twisted や Sphinx も動作しますよ!逆に C 拡張を含むライブラリは動作しないものが多いです。1.7 からは numpy も numpypy として動作するようになり、今後対応するライブラリがどんどん増えていきますよ!
  • スタックレス: スタックレスの軽量な擬似的スレッドによる並列処理ができます。
メモリ最適化して、JIT パワーで、Python 高速化したよってことです。ただ PyPy はそれだけじゃないんです。PyPy は動的言語の処理系を作ることもできます。PyPyPy とかも夢じゃないです。動的言語を作ってみたい方は是非 (この辺は勉強中のため後の方々へ丸投げ)!!

>>>> PyPy-ja ってなんなの?
巷では "PyPy 闇の軍団" と呼ばれています。あーみんファンクラブです。公式ドキュメントの翻訳や PyPy 技術情報の共有等を中心に活動しています。詳細は以下のページを参考にしてください。
総帥の @rokujouhitoma さんを中心に盛り上がっております。

pypy闇の軍団の総帥です。こんにちわこんにちわ。
Nov 09 via YoruFukurouFavoriteRetweetReply

こわくないよ。全然こわくないよ。 RT @shomah4a: 総帥こわーい [11時18分24秒 JST] Toru Ike(rokujyouhitoma, Tohru Ike): まだビルドしたことないの?( ゚д゚)、ペッ #pypyja
Nov 21 via YoruFukurouFavoriteRetweetReply

ご興味ごおありの方は是非コミュニティに参加してください。1 人でも多くの PyPy ユーザが増えるといいなーと思ってます。

コメント

コメントを投稿

このブログの人気の投稿

Python から Win32 API 経由で印刷する

Disqus のスケール - Django 編

Disqus のスケール - Django で月間80億PVを処理する