JITに関するikeikeikeikeのブックマーク (5)
-
Facebookは同社がオープンソースで開発しているPHP用のJITコンパイラの最新版﹁HHVM 2.2.0﹂︵HipHop Virtual Machine for PHP︶の公開を発表しました。 HHVMはPHPのコードをダイナミックにバイナリコードへと変換することで、高速な実行の実現を目指しています。 HHVM 2.2では、主要なLinuxディストリビューションとして、Ubuntu 12.04/ 13.04/13.10、Mint 15、Debian 7、Fedora 19のそれぞれに対応したパッケージが用意されるようになりました。 性能面では前バージョンに比べてCPUの利用率が17%低下し、効率が向上しているとのこと。 新機能として、Pharファイル対応、php.ini対応、多くのSPLクラスの追加と修正、ArrayObjectとArrayIteratorのバグ修正など。また、Symf
-
列挙順自体はとくに意味ありません。あと﹁どの最適化がどのくらい速くなるのか?﹂を詳細に計ったことはないですし、﹁原理的にこうなってるから(ry﹂というのを説明するに過ぎません。中には﹁JITで無意味になるようなどうでもいい細かすぎること﹂も書いてありますし、最適化のトレードオフとして失うものもあるので、そのあたり自己責任でお願いします。本当に最適化が必要とされる場合は、以下のものを無闇に実行するよりまず計測したほうがいいのは、言うまでもありません。*1 1. private[this]をつかえ scalaのvalやvarは、private[this]にしたときのみ、直接のフィールドアクセスになります(それ以外ではメソッド呼び出し)。シングルトンのobjectの場合も同様です。private[this]をつけられる場合はできるだけつけましょう 2. なんでもかんでもListをつかうな 最初の
-
流行りのJITコンパイラは嫌いですか?¶ PyPy Advent Calendar 12/23担当の RYO @ 修論提出1ヶ月前です。 いよいよ明日はクリスマスイブですね。 リア充の方もそうでない方も、当記事に目を留めて頂き誠にありがとうございます。 本記事では、他の皆さんが扱われているような実用的なネタとは異なる PyPyの内側の話、特にPyPyのJITコンパイラに関する話題を扱いたいと思います。 したがって、本記事の情報は業務等の役にはまったく立ちませんのでご容赦願います。 さて、この記事をお読みになっている方々の殆どは、 PyPy = JITのおかげで早くなった事で有名なPythonの処理系 という認識をお持ちだと思います。 確かにこの認識は間違ってはいないのですが、 実はPythonにJITを乗せる事で高速化を図る処理系はPyPyだけではなく、 その殆どがPyPyが今程の有名なも
-
PHPのJITコンパイラ﹁HipHop Virtual Machine﹂、Facebookがオープンソースで公開 HipHop Virtual Machineは、PHPを高速に実行するためにPHPのコードをC/C++に変換してg++でコンパイルし、バイナリコードにするHiphop compiler︵hphpc︶と、PHPのインタプリタであるHipHop interpreter (hphpi)を組み合わせたもの。PHPのコードをダイナミックにバイナリコードへと変換することで、高速な実行を目指しています。 コンパイラと同等以上の実行速度へ HipHopはFacebookが開発し、オープンソースとして公開しています。今回のHipHop Virtual Machineも、これらの開発の延長線上にあるものです。 Our experiences with hphpc led us to start e
-
(注)‥以下、一部、推測で書いた部分が間違っていて、詳しくはコメント欄をご覧ください。詳細は、JaegerMonkey - MozillaWikiに書いてありました。 Mozillaのオフィシャルブログの記事、improving JavaScript performance with JägerMonkey – Mozilla Hacks – the Web developer blog、によると、Firefox のJavaScriptのエンジンをAppleのWebKitのJavaScriptのエンジンをベースに作り直すそうです。僕が英語を読み間違えていないことを強く祈ります。名称は、JägerMonkeyと言うそうです。 元々、JavaScriptのJITコンパイラによる高速化は、FirefoxのTraceMonkeyから始まりました。まず、インタープリタで走らせてから、型を推測し、JI
-
1