Pytania oznaczone «garbage-collection»

Wyrzucanie elementów bezużytecznych (GC) to forma automatycznego zarządzania pamięcią, która próbuje odzyskać śmieci lub pamięć zajmowaną przez obiekty, które nie są już używane przez program.

1657
Właściwe użycie interfejsu IDisposable

Wiem z lektury dokumentacji Microsoft, że „podstawowe” użycieIDisposable interfejsu jest czyszczenie niezarządzanych zasobów. Dla mnie „niezarządzany” oznacza takie rzeczy, jak połączenia z bazą danych, gniazda, uchwyty okien itp. Ale widziałem kod, w którym Dispose()metoda jest zaimplementowana w...

594
Czy istnieje Java Destruktor?

Czy istnieje Java Destruktor? Wydaje mi się, że nie jestem w stanie znaleźć żadnej dokumentacji na ten temat. Jeśli nie, to jak mogę osiągnąć ten sam efekt? Aby uściślić moje pytanie, piszę aplikację, która zajmuje się danymi, a specyfikacja mówi, że powinien istnieć przycisk „reset”, który...

435
Gdzie jest Machine.Config?

Chcę zastosować zmianę, aby móc używać ustawień Server GC w mojej aplikacji C # 3.5 - mogę to zrobić, edytując machine.configplik. Jedynym problemem jest to, że nie wiem, gdzie to jest. Jak mogę znaleźć ścieżkę tego pliku w powtarzalny sposób na wielu różnych...

326
Dlaczego złą praktyką jest wywoływanie System.gc ()?

Po udzieleniu odpowiedzi na pytanie, w jaki sposób wymusić zwolnienie obiektów w Javie (facet wyczyścił HashMap o pojemności 1,5 GB) System.gc(), powiedziano mi, że wywoływanie System.gc()ręczne jest złe , ale komentarze nie były całkowicie przekonujące. Ponadto nikt nie odważył się głosować za...

270
Dlaczego C ++ nie ma śmietnika?

Nie zadaję tego pytania przede wszystkim ze względu na zalety zbierania śmieci. Moim głównym powodem, dla którego o to pytam, jest to, że wiem, że Bjarne Stroustrup powiedział, że C ++ będzie miało w pewnym momencie moduł wyrzucający śmieci. To powiedziawszy, dlaczego nie zostało dodane? Istnieje...

170
Zrozumienie czyszczenia pamięci w .NET

Rozważ poniższy kod: public class Class1 { public static int c; ~Class1() { c++; } } public class Class2 { public static void Main() { { var c1=new Class1(); //c1=null; // If this line is not commented out, at the Console.WriteLine call, it prints 1. } GC.Collect();...

166
Kiedy można dzwonić do GC.Collect?

Ogólna rada jest taka, że ​​nie powinieneś wywoływać GC.Collectz kodu, ale jakie są wyjątki od tej reguły? Przychodzi mi na myśl tylko kilka bardzo konkretnych przypadków, w których wymuszenie zbierania elementów bezużytecznych może mieć sens. Przykładem, który przychodzi na myśl, jest służba,...