Pytania otagowane jako 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.

4
Czy procedury obsługi zdarzeń powstrzymują odśmiecanie pamięci?
Jeśli mam następujący kod: MyClass pClass = new MyClass(); pClass.MyEvent += MyFunction; pClass = null; Czy pClass będzie zbierany śmieci? Czy też będzie się kręcił, wciąż odpalając wydarzenia, gdy tylko się pojawią? Czy muszę wykonać następujące czynności, aby umożliwić zbieranie śmieci? MyClass pClass = new MyClass(); pClass.MyEvent += MyFunction; pClass.MyEvent …

2
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(); GC.WaitForPendingFinalizers(); Console.WriteLine(Class1.c); // …

6
Jak zamknięcia JavaScript są zbierane bezużytecznie
Zarejestrowałem następujący błąd przeglądarki Chrome , który doprowadził do wielu poważnych i nieoczywistych wycieków pamięci w moim kodzie: (Te wyniki wykorzystują profiler pamięci Chrome Dev Tools , który uruchamia GC, a następnie tworzy migawkę sterty wszystkiego, co nie zostało zebrane). W poniższym kodzie someClassinstancja jest odśmiecana (dobra): var someClass = …

11
Jak obsłużyć: java.util.concurrent.TimeoutException: android.os.BinderProxy.finalize () przekroczył limit czasu po 10 sekundach błędów?
Widzimy wiele TimeoutExceptionsw GcWatcher.finalize, BinderProxy.finalize, i PlainSocketImpl.finalize. Ponad 90% z nich dzieje się na Androidzie 4.3. Otrzymujemy raporty od Crittercism od użytkowników w terenie. Błąd jest odmianą: „ com.android.internal.BinderInternal$GcWatcher.finalize() timed out after 10 seconds” java.util.concurrent.TimeoutException: android.os.BinderProxy.finalize() timed out after 10 seconds at android.os.BinderProxy.destroy(Native Method) at android.os.BinderProxy.finalize(Binder.java:459) at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:187) at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:170) …

24
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, która budzi się co jakiś czas, wykonuje jakieś …


9
Stos, statyczne i sterty w C ++
Szukałem, ale nie rozumiałem zbyt dobrze tych trzech pojęć. Kiedy muszę używać alokacji dynamicznej (w stercie) i jaka jest jej prawdziwa zaleta? Jakie są problemy ze statowaniem i stosem? Czy mogę napisać całą aplikację bez przydzielania zmiennych w stercie? Słyszałem, że inne języki zawierają "garbage collector", więc nie musisz się …

6
Czy jawne zamykanie plików jest ważne?
W Pythonie, jeśli otworzysz plik bez wywołania close()lub zamkniesz plik, ale nie używasz try- finallylub instrukcji " with", czy to jest problem? A może jako praktyka kodowania wystarczy polegać na wyrzucaniu elementów bezużytecznych w Pythonie, aby zamknąć wszystkie pliki? Na przykład, jeśli to zrobi: for line in open("filename"): # ... …




3
Java GC (błąd alokacji)
Dlaczego zawsze „GC (Błąd alokacji)”? Java HotSpot (TM) 64-bitowa maszyna wirtualna serwera (25.25-b02) dla środowiska linux-amd64 JRE ( 1.8.0_25 -b17), CommandLine flags: -XX:CMSInitiatingOccupancyFraction=60 -XX:GCLogFileSize=10485760 -XX:+HeapDumpOnOutOfMemoryError -XX:InitialHeapSize=32212254720 -XX:MaxHeapSize=32212254720 -XX:NewRatio=10 -XX:OldPLABSize=16 -XX:ParallelGCThreads=4 -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintStringTableStatistics -XX:+PrintTenuringDistribution -XX:StringTableSize=1000003 -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=50 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParNewGC -XX:+UseConcMarkSweepGC 27.329: [GC (Allocation Failure) 27.329: [ParNew Desired survivor …

1
Dokumentacja garbage collectora w Pythonie [zamknięta]
Zamknięte. To pytanie nie spełnia wytycznych dotyczących przepełnienia stosu . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby było na temat przepełnienia stosu. Zamknięte 5 lat temu . Popraw to pytanie Szukam dokumentów, które szczegółowo opisują, jak działa wyrzucanie elementów bezużytecznych w Pythonie. Interesuje mnie, co jest …

5
Skrócenie czasu przerwy w usuwaniu elementów bezużytecznych w programie Haskell
Opracowujemy program, który odbiera i przekazuje dalej „wiadomości”, zachowując tymczasową historię tych wiadomości, aby na żądanie mógł przekazać historię wiadomości. Wiadomości są identyfikowane numerycznie, zwykle mają rozmiar około 1 kilobajta i musimy przechowywać setki tysięcy takich wiadomości. Chcemy zoptymalizować ten program pod kątem opóźnienia: czas między wysłaniem a odebraniem wiadomości …

4
Jak pominąć wyskakujące okienko „Loose Object” podczas uruchamiania „git gui”
Kiedy uruchamiam „git gui”, pojawia się wyskakujące okienko z napisem To repozytorium zawiera obecnie około 1500 luźnych obiektów. Następnie sugeruje kompresję bazy danych. Robiłem to już wcześniej i zmniejsza to liczbę luźnych obiektów do około 250, ale to nie blokuje wyskakującego okienka. Ponowne kompresowanie nie zmienia liczby luźnych obiektów. Nasz …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.