:
- あなたはそれがうまく動作し、それができるならば、あなたのコードをスピードアップする必要があり、JITを使用するために何かをする必要はありません。
- 単純なループでしか機能しないので、ほとんど役に立ちません。
- これは概念の証明ではありません。
- ので、現在それを向上させることに取り組んで誰もありません:それは複雑な問題だ
- 。
- これは主に厄介なオクターブコードの修正です。
- は、あまりにも不安定なLLVMを使用します。
Q:成功した機能を使用している誰かがその適切な使用方法を示す、最小限の作業例を提供することができ、効果、それは自分のマシン上で(もしあれば)は?
表示する内容はありません。 JITサポート付きのOctaveをビルドすると、Octaveは自動的により速いコードをいくつかのループで使用します。唯一の違いはスピードにあり、あなたは(あなたが実行時にJITを無効にすることができますが)あなたのコードを変更する必要はありません。
octave> jit_enable (1) # confirm JIT is enabled
octave> tic; x = 0; for i=1:100000, x += i; endfor, toc
Elapsed time is 0.00490594 seconds.
octave> jit_enable (0) # disable JIT
octave> tic; x = 0; for i=1:100000, x += i; endfor, toc
Elapsed time is 0.747599 seconds.
## but you should probably write it like this
octave> tic; x = sum (1:100000); toc
Elapsed time is 0.00327611 seconds.
## If Octave was built without JIT support, you will get the following
octave> jit_enable (1)
warning: jit_enable: support for JIT was unavailable or disabled when Octave was built
これは単純な例ですが、上のより良い例と詳細を見ることができますそれに取り組んだ唯一の人のblogとhis presentation at OctConf 2012が含まれています。 (古い)の詳細については、Octave's JIT wiki page
非常に単純なループでのみ動作することに注意してください。言語に精通している人がいないので、最初はそれらを書くことができない単純なループです。この機能は概念の証明として存在し、それを拡張したい人のための出発点です(個人的には、ベクトル化されたコードを書くことを好みます)。
OctaveのJITには、LLVMを使用するというもう1つの問題があります。オクターブ開発者は、下位互換性を崩壊させ続けるため、この目的にはあまりにも信頼性が低いと判断しました。 LLVMのすべてのマイナーリリースでOctaveビルドが壊れてしまったので、Octave開発者はLLVM 3.5がリリースされたときに修正をやめ、デフォルトで無効にしました。
http://wiki.octave.org/FAQ#Just-In-Time_compilerを更新するか、この回答にリンクする必要があります – Andy