コードはアサーションを含めてコンパイルでき、必要に応じてアクティブ化/非アクティブ化できます。
しかし、アサーションを含むアプリをデプロイし、それらが無効になっている場合、アサーションが存在して無視されることに伴うペナルティは何ですか?
コードはアサーションを含めてコンパイルでき、必要に応じてアクティブ化/非アクティブ化できます。
しかし、アサーションを含むアプリをデプロイし、それらが無効になっている場合、アサーションが存在して無視されることに伴うペナルティは何ですか?
非常に少ない。クラスのロード中に削除されると思います。
いくつかの証拠に最も近いものは、Java 言語仕様の assert ステートメントの仕様です。assert ステートメントをクラスのロード時に処理できるように表現されているようです。
アサーションを無効にすると、パフォーマンスの低下が完全に解消されます。無効にすると、セマンティクスとパフォーマンスにおいて空のステートメントと本質的に同等になります。