Java プロジェクトのランタイム バイトコードの生成/変更を検討しています。
ASM と Javassist という 2 つの重要な、そして現在も維持されている API があります。
ASM は、コードの生成が最も速く、おそらく最も強力です。しかし、Javassist よりもユーザーフレンドリーではありません。
私の場合、バイトコード操作を事前に実行して、アプリケーションのセットアップ フェーズの最後に完了するようにしたいと考えています。したがって、操作/生成の速度は重要ではありません。重要なのは、生成されたコードの速度です。これは、ネットワーク遅延がリフレクションのコストを完全に隠す典型的な Web アプリではなく、リアルタイムのデスクトップ ゲームの一部になるためです。
私の質問は、Javassist は、ASM を使用する場合には存在しない、バイトコードに不要なオーバーヘッドを導入するのでしょうか? または、別の言い方をすれば、ASM レベルで作業すると、Javassist で作業する場合と比較して、生成されたコードの速度が向上しますか?
[編集] 私は両方のツールの最新バージョンに興味があり、同じ問題で両方を試してみて、結果のクラスの速度に大きな違いがあるかどうかを確認することに最も興味があります。