2011-07-13 13 views
5

Kısaltma tanımlayıcı adları, MSIL kodu yerel değişkenler dışındaki tüm bu adları içerdiğinden, sonuçta çalıştırılabilir çalışmayı daha küçük boyutta yapar. .NET çalışma zamanında kodun performans açısından en azından teoride iyi bir şekilde yürütülmesini etkiliyor mu? Yerel makine kodu, tüm bu isimleri içermez, ancak .NET çalışma zamanı ile birlikte çalışır. Bu yüzden, uygulamanın çalışma zamanı performansını en az bir miktar arttırmak için MSIL kodunu gizlemek (yani tanımlayıcı isimlerini kısaltmak) mantıklı olup olmadığını merak ediyorum.C#. Tanımlayıcı adlarını kısaltmak, uygulamanın genel çalışma zamanı performansını artırır mı?

Bu ifadede şaşırdım: "Dotfuscator çalışma zamanı performansını artırıyor. Gereksiz program öğelerini kaldırarak ve tanımlayıcıları küçük isimlere dönüştürerek Dotfuscator aslında programları hızlandırabilir." http://msdn.microsoft.com/en-us/library/ms227226.aspx

+0

: "Dotfuscator performans gereksiz programı elemanlarını kaldırma ve küçük adlarına tanımlayıcıları yeniden adlandırarak, Dotfuscator aslında programları çalıştırmak zamanı hızlandırabilir iyileştirir." "Gereksiz program elemanları" kaldırılırsa muhtemelen doğrudur - sonuçta ortaya çıkan kodu daha küçük ve daha kompakt hale getirir, sonuçta bir performans artışıyla sonuçlanır. Ancak, bu performans artışının çok fazla olacağından kuşkuluyum. Çünkü programınızda çok fazla program öğesinin olması gerekmiyor. –

cevap

4

tanımlayıcı isimleri derleyici/sarsıntıdan atılır olsun, böylece bu herhangi bir fark olmayacaktır.

+0

Dotfuscator ile ilgili açıklama (bunu orijinal gönderime ekledim) anlamlıdır? –

+0

@bsnote - Gereksiz program öğelerinin kaldırılması ile ilgili kısım (bellek tüketimini azaltır, dolayısıyla hızı artırır). – Oded

+1

@Oded, iyi meta veriler hala yansımada kullanmak için jitting sonra tutulur. Yani burada bellek maliyeti var - ve bellek kullanımı daha fazla RAM sayfalarına dökülürse performansla ilgili çıkarımlar var. –

2

Bir uygulamayı ilk çalıştırdığınızda, MSIL bu platform için makine koduna derlenir - makine kodu yürütülür bundan sonra. Teorik olarak, MIGHT'ı 1'inci kez etkileneceğini düşünürdüm, ancak bu isimleri kullanmayan son makine kodu yürütme süresi, makine derlemesi tamamlandıktan sonra bir katlamayı değiştirmeyecek. bildiriye ilişkin olarak

İlgili konular