問題タブ [invokedynamic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
30 参照

java - なぜinvokedynamicはinvokestaticより速いのか

最近、低レベルの Java を使用して、JVM バイトコードを変更し、.java ファイルをコンパイルせずにクラス ファイルを生成しています。について知ったばかりで、独自の JVM バイトコード ツールを使用して独自の定数と属性をinvokedynamic生成し、適切に使用できるようにすることができました。InvokeDynamicBootstrapMethodinvokedynamic

この後、同じメソッドでinvokestaticとの両方をテストする簡単なタイミング スクリプトを Java で作成しました。invokedynamicしかし、私のスクリプトは、それinvokedynamicが より約 8% 高速でinvokestaticあることを示しました。

各メソッドの時間を測定するために使用したコードは次のとおりです。

出力は次のとおりです。

コンパイル後に変更されたバイトコードに関しては、次のように新しい定数がダンプされjavapます。

runメソッドの新しいコードは次のとおりです。

ここにBootstrapMethods表があります:

何か不足していますか?どうinvokedynamicすればより速くなるかわかりませんinvokestatic