2011-07-13 4 views
5

識別子名を短縮すると、MSILコードにこれらのすべての名前がローカル変数を除いて含まれるため、実行可能ファイルのサイズが小さくなります。少なくとも理論的には、パフォーマンス面で.NETランタイムのコードを良い方法で実行することに影響を及ぼしますか?ネイティブマシンコードにはこれらの名前はすべて含まれていませんが、.NETランタイムと相互運用されます。したがって、アプリケーションのランタイムパフォーマンスを少なくとも少し向上させるために、MSILコードを難読化する(つまり、識別子名を短くする)のが理にかなっているのだろうかと思います。C#。識別子名を短縮すると、アプリケーションの実行時パフォーマンス全体が向上しますか?

「Dotfuscatorは実行時のパフォーマンスを改善します。不要なプログラム要素を削除し、識別子を小さな名前に変更することで、Dotfuscatorは実際にプログラムをスピードアップできます」 http://msdn.microsoft.com/en-us/library/ms227226.aspx

+0

「Dotfuscatorは実行時のパフォーマンスを改善します。不要なプログラム要素を削除し、識別子を小さな名前に変更することで、Dotfuscatorは実際にプログラムを高速化できます」 「不必要なプログラム要素」が削除された場合はおそらく真実です。その結果、コードが小さくコンパクトになり、結果としてパフォーマンスが向上します。しかし、私は、このパフォーマンスの向上が大いに重要になるとは思っていません。なぜなら、あなたのプログラムには、必要のないプログラム要素がたくさんあるとは思わないからです。 –

答えて

4

識別子名はコンパイラ/ジッタによって破棄されるため、これは何の違いもありません。

+0

Dotfuscatorに関する記述(オリジナルの投稿に追加)は意味がありますか? –

+0

@bsnote - 不要なプログラム要素を削除する部分が(メモリ消費を減らし、速度を上げる)可能性があります。 – Oded

+1

@Oded、よくメタデータは反射で使用するためにジッティングした後も保持されます。したがって、ここではメモリの使用量があります。また、メモリ使用量が多くのRAMページに溢れている場合のパフォーマンスへの影響があります。 –

2

アプリケーションを初めて実行すると、MSILはそのプラットフォームのマシンコードにコンパイルされます。その後、マシンコードが実行されます。だから理論的には、私は最初のコンパイル時に影響を受けると思うでしょうが、マシンコンパイルが終わっても、それらの名前を使わない最終的なマシンコードの実行時間は変化しません。

関連する問題