Skip to Content
新しいバージョン 12 を公開しました 🎉
Obfuscator値の暗号化パフォーマンス

パフォーマンス

値と配列の暗号化は、わずかな実行時コストと引き換えに、定数と配列のデータがデコンパイルされたコードに現れないようにします。

  • アクセスごとの復号:暗号化された定数は、直接読み込まれるのではなく、復号の呼び出しを通じて取得されるため、値の読み取りには通常の ldc よりもコストがかかります。ほとんどのコードでは体感できない差ですが、頻繁に実行されるループが暗号化された定数を何百万回も繰り返し読み取る場合は、積み重なって影響が出ることがあります。
  • 最初の使用時の配列の再構築:暗号化されたインラインの配列は、最初に初期化されるときに、復号されたデータから再構築されます。

コストは暗号化された値が読み取られる頻度に比例するため、アセンブリ内のすべてのリテラルに適用するのではなく、保護する価値のあるものを保護できる箇所に暗号化を適用してください。特定のタイトなループで測定可能なオーバーヘッドが見られる場合は、定数をループの外の変数に移すか、実際に機密データを含むデータ型だけで暗号化を有効にすることを検討してください(構成を参照)。

ほかの保護の設定と同様に、難読化されたアセンブリに対してテストスイートを実行し、必要に応じてパフォーマンスのベンチマークも実行して、このトレードオフがアプリケーションにとって許容できることを確認してください。

Last updated on