.exeファイルを中間言語に逆アセンブルすると、実行ファイルよりも小さなダンプを取得するのはなぜですか?静的にリンクされたコードが含まれていないためですか?ILファイルを.exeファイルよりも小さくダンプするのはなぜですか?
答えて
EXEファイルにはバイナリプログラムコードだけが含まれているわけではありません。また、埋め込みリソース、静的にリンクされたライブラリ、文字列、ヘッダー、メタデータ情報、シンボルテーブル/デバッグ情報、その他多くのものを含むことができます。
また、コンパイルは最適化段階を経るため、コードを最適化するためにコードが変換される可能性があります。逆アセンブルされたコードは、元のソースコードと1対1で一致しないことがあります。
私はILがjitの前にコードサイズを増やす方法で最適化されているかどうかはわかりません。たとえば、C#コンパイラの最適化の焦点は、コードサイズの縮小(変数の削除などの多くの最適化が含まれています)にありました。 Lippertはこれをさらに完全に拡張することができますが、おそらくそれがあります。 – hoodaticus
私はこれをC++コンパイラと混同しているかもしれませんが、以前はスイッチ[-O1と-O2](https://msdn.microsoft.com/en-us/library/8f8h5cxt.aspx)が使われていたと思います実行可能ファイルのサイズを最小化するか、実行可能ファイルの速度を最大化するかのいずれかに最適化します。 – Icemanind
これらは間違いなくC++のスイッチです、とても素敵です:) – hoodaticus
- 1. exeは、最大の宣言されたバッファよりも小さくすることはできますか?
- 2. 私の出力ファイルのサイズがオリジナルファイルよりも小さいのはなぜですか?
- 3. なぜSpark Parquetファイルは元のファイルよりも大きいですか?
- 4. なぜhprofファイルはjvmに与えられるメモリ量よりもはるかに小さいでしょう
- 5. EXEファイルをosのようなものに変換する
- 6. OutOfMemoryError - メモリではなくファイルにデータをダンプできますか?
- 7. なぜFTP経由でzipファイルをアップロードしたのが元のファイルより小さいのですか?
- 8. iOSライブフォトのビデオサイズがビデオよりも小さいのはなぜですか?
- 9. ナビゲーション・ドロワーの幅が他よりも小さいのはなぜですか?
- 10. a.phpファイルを、実行するのではなく、htmlファイルのように開くのはなぜですか?
- 11. swfファイルを小さくするには?
- 12. 私のコードは小さなファイルでうまく動作しますが、大きなファイルではうまくいかないのはなぜですか?
- 13. バイナリファイルは、WindowsよりLinuxの場合よりも小さくなります。
- 14. 特定のサイズよりも小さいファイルをバッチで削除する
- 15. .soファイルは常に.aファイルよりも小さいのですが(ソースは同じです)
- 16. のexeファイルのなぜAppDomain.CurrentDomain.SetupInformation.ApplicationNameリターンsvhostバージョン
- 17. 小さなバイナリファイルではなく、小さなASCIIファイルを開くことができますか?
- 18. なぜ私のHTML5キャンバスはそれより小さくレンダリングされますか?
- 19. Javaヒープダンプ(hprofファイル)は常駐メモリよりもはるかに小さい
- 20. Integer.MAX_VALUE + 1がInteger.MAX_VALUEより小さいのはなぜですか?
- 21. ブートストラップのメディアを小さく、小さくしたり小さくしたりすると、クリックハンドラが機能しなくなり、CSSのホバープロパティーも変わります。
- 22. Oracle SQLダンプ・ファイルをsql /別のダンプ・ファイルに抽出する
- 23. Git LFSは小さなファイルをうまく扱いますか?
- 24. 何千もの小さなファイルにXMLデータを保存する
- 25. いくつかの小さなユーティリティを1つのexeにバンドルするには?
- 26. .txtファイルを.exeファイルに保存するか、またはユーザービューから少なくとも隠す可能性はありますか?
- 27. xcode 4.2はxcode 3.6.2よりもサイズがはるかに小さいのはなぜですか?
- 28. .ILファイルを編集するためのツールですか?
- 29. exeファイルのフルパスからInnosetupスクリプトのexeファイル名を取得する方法は?
- 30. トップレベルのGTKウィンドウをデフォルトの最小サイズよりも小さくする方法はありますか?
.exeファイルには、ダンプしていない[resources](http://stackoverflow.com/q/90697/501250)も含まれている可能性があります。これは大文字と小文字が区別されます。すべての.exeファイルがダンプされたILより大きいわけではありません。 – cdhowie
@cdhowie、空の空のクラスの場合主な機能の違いは2kbです。 –
いいえ、私はどのような種類の情報をexeに含めることができるかを理解していますが、2kbです。私も見逃していた、参照コードの可視性/カウント。それは明らかに各機能のどこかに存在しなければならない。 –