Duże zagęszczenie sterty obiektów, kiedy jest dobre?
Po pierwsze, jak duży jest uznawany za duży? Czy mimo to można określić, jak duży obiekt znajduje się w stosie?
.Net 4.5.1 pochodzi z tymLargeObjectHeapCompactionMode
:
Po ustawieniu właściwości LargeObjectHeapCompactionMode na GCLargeObjectHeapCompactionMode.CompactOnce następna pełna blokująca operacja usuwania śmieci (i zagęszczanie LOH) następuje w nieokreślonym czasie przyszłym. Możesz natychmiast kompaktować LOH, używając kodu podobnego do następującego:
GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce;
GC.Collect();
Z tego, co słyszałem, nie jest dobrze kompaktować LOH! Który z nich jest najgorszy? Kompaktowy LOH lub mający fragmentację LOH?