13

JSR / RETバイトコードペアがJava6で非推奨になった理由を誰かが知っていますか?

私がネット上で見つけた唯一の意味のある説明は、ランタイムによるコード分析の実行が難しくなり、遅くなったということでした。誰かが別の理由を知っていますか?

4

1 に答える 1

13

JSRとRETを使用すると、通常のバイトコードの制約が緩和されるため(JSRへのエントリ時に一貫したスタック形状を持つなど)、バイトコードの検証がはるかに困難になります。利点は非常に小さく(場合によってはわずかに小さい方法である可能性があります)、奇妙なJSR / RETパターン(および潜在的なセキュリティの脆弱性、および関連する完全な検証の実行時コスト)を処理するベリファイアの継続的な問題により、役に立たない機能になります持ち続けるために。

スタックマップとデータの結果として有効になる軽量のベリファイアは、安全性を犠牲にすることなく、クラスの読み込み中にパフォーマンスを大幅に向上させます。

于 2011-05-03T16:54:03.217 に答える