2008-09-09 20 views
8

Belirli bir sınıfın .NET'te ne kadar bellek kullandığını çalışma zamanında belirlemenin bir yolunu bulmaya çalışıyorum. Marshal.SizeOf()'u kullanarak, yalnızca değer türlerinde çalıştığı için çıktı. Bir sınıfın ne kadar bellek kullandığını kontrol etmenin bir yolu var mı?Bir sınıfın ne kadar bellek kullandığını belirleyin.

cevap

5

Bu tür bir şeye bakmaya yeni başlamıştım, ancak bellek oluşturucuların uygulamanızdaki nesnelerin örnekleri hakkında ayrıntılı bilgi verebileceğini buldum. İşte

denemeye değer olan bir çift vardır:

1

Bir hatıra profilci Aradığınız bilgiyi almanın en kolay yolu olduğu konusunda hemfikirdir. Daha önce bahsedilen ikiye ek olarak, bir performans profiler ve bir bellek profiler olan JetBrains dotTrace öneririm.

bunu kendiniz yapmak istiyorum ve CLR bağırsaklar içine oldukça derin almak isteyen varsa, (Microsoft dediği gibi) yönetilmeyen bir API olduğunu .NET Profiling API, kullanabilirsiniz: "izlemek için bir profil oluşturucu sağlayan Bir programın ortak dil çalışma zamanı (CLR) tarafından yürütülmesi. " Tam olarak gündelik kullanıma yönelik değildir, ama muazzam bir işlevsellik var.