問題タブ [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.
java - なぜinvokedynamicはinvokestaticより速いのか
最近、低レベルの Java を使用して、JVM バイトコードを変更し、.java ファイルをコンパイルせずにクラス ファイルを生成しています。について知ったばかりで、独自の JVM バイトコード ツールを使用して独自の定数と属性をinvokedynamic
生成し、適切に使用できるようにすることができました。InvokeDynamic
BootstrapMethod
invokedynamic
この後、同じメソッドでinvokestatic
との両方をテストする簡単なタイミング スクリプトを Java で作成しました。invokedynamic
しかし、私のスクリプトは、それinvokedynamic
が より約 8% 高速でinvokestatic
あることを示しました。
各メソッドの時間を測定するために使用したコードは次のとおりです。
出力は次のとおりです。
コンパイル後に変更されたバイトコードに関しては、次のように新しい定数がダンプされjavap
ます。
run
メソッドの新しいコードは次のとおりです。
ここにBootstrapMethods
表があります:
何か不足していますか?どうinvokedynamic
すればより速くなるかわかりませんinvokestatic