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.
Mam klasę, która oferuje kilka wydarzeń. Ta klasa jest zadeklarowana globalnie, ale nie jest instancją na tej globalnej deklaracji - jest ona instanowana w razie potrzeby w metodach, które tego potrzebują. Za każdym razem, gdy klasa jest potrzebna w metodzie, jest ona instancją i rejestrowane są programy obsługi zdarzeń. Czy …
Z mojego doświadczenia wynika, że większość ludzi powie ci, że wymuszanie czyszczenia pamięci jest nierozsądne, ale w niektórych przypadkach, gdy pracujesz z dużymi obiektami, które nie zawsze są zbierane w generacji 0, ale gdzie problemem jest pamięć, jest czy można wymusić zbieranie? Czy istnieją najlepsze praktyki, aby to robić?
Jestem ciekaw, dlaczego implementacje Haskell używają GC. Nie przychodzi mi do głowy przypadek, w którym GC byłaby konieczna w czystym języku. Czy jest to tylko optymalizacja w celu ograniczenia kopiowania, czy rzeczywiście jest to konieczne? Szukam na przykład kodu, który przeciekałby, gdyby nie było GC.
Wiem, że w Javie zbieranie śmieci jest zautomatyzowane. Ale zrozumiałem, że jeśli wywołasz System.gc()w swoim kodzie, że JVM może, ale nie musi, zdecydować o przeprowadzeniu czyszczenia pamięci. Jak to dokładnie działa? Na jakiej podstawie / parametrach dokładnie maszyna JVM decyduje się wykonać (lub nie) wykonać GC, gdy widzi System.gc()? Czy …
Przeglądałem stare książki i znalazłem egzemplarz „Practical Java” Petera Haggera. W sekcji dotyczącej wydajności znajduje się zalecenie, aby ustawić odniesienia do obiektów, nullgdy nie są już potrzebne. Czy w Javie ustawianie odwołań do obiektów nullpoprawia wydajność lub efektywność usuwania pamięci? Jeśli tak, w jakich przypadkach jest to problem? Klasy kontenerów? …
Go to język zbierania śmieci: http://golang.org/doc/go_faq.html#garbage_collection Tutaj jest napisane, że jest to garbage collector typu mark-and-sweep, ale nie zagłębia się w szczegóły, a zamiana jest w toku ... jednak ten akapit wydaje się nie być zbytnio aktualizowany od czasu wydania Go. Nadal jest to znak i zamiatanie? Czy jest konserwatywne …
Czy moglibyście jako programiści C ++ dać nam dobry opis tego, czym jest RAII, dlaczego jest ważny i czy może mieć jakiekolwiek znaczenie dla innych języków? I zrobić znać trochę. Uważam, że oznacza to „Pozyskiwanie zasobów to inicjalizacja”. Jednak ta nazwa nie współgra z moim (prawdopodobnie niepoprawnym) zrozumieniem, czym jest …
Jakie są „sprawdzone metody” tworzenia (i zwalniania) milionów małych obiektów? Piszę program szachowy w Javie, a algorytm wyszukiwania generuje pojedynczy obiekt „Move” dla każdego możliwego ruchu, a wyszukiwanie nominalne może łatwo wygenerować ponad milion obiektów ruchu na sekundę. JVM GC poradził sobie z obciążeniem mojego systemu programistycznego, ale jestem zainteresowany …
Widziałem wiele odpowiedzi na Androida, które sugerowały dzwonienie do garbage collectora w niektórych sytuacjach. Czy dobrą praktyką jest zażądanie modułu odśmiecania pamięci w systemie Android przed wykonaniem wymagającej pamięci operacji? Jeśli nie, czy mam zadzwonić tylko wtedy, gdy otrzymam OutOfMemorybłąd? Czy są inne rzeczy, których powinienem użyć przed skorzystaniem z …
Tak więc patrzę na stertę z jmap na zdalnym pudełku i chcę wymusić na niej zbieranie śmieci. Jak to zrobić bez zaglądania do jvisualvm lub jconsole i przyjaciół? Wiem, że nie powinieneś ćwiczyć wymuszania zbierania śmieci - powinieneś po prostu dowiedzieć się, dlaczego sterta jest duża / rośnie. Zdaję sobie …
Czytałem o pokoleniach i stosie dużych obiektów. Ale nadal nie rozumiem, jakie jest znaczenie (lub korzyść) posiadania dużej sterty obiektów? Co mogłoby pójść nie tak (pod względem wydajności lub pamięci), gdyby środowisko CLR po prostu polegało na generacji 2 (biorąc pod uwagę, że próg dla Gen0 i Gen1 jest mały …
Jestem nowy w Javie i jestem zdezorientowany co do garbage collectora w Javie. Co tak naprawdę robi i kiedy zaczyna działać. Proszę opisać niektóre właściwości garbage collectora w Javie.
Chociaż rozumiem poważne konsekwencje grania tą funkcją (a przynajmniej tak myślę), nie rozumiem, dlaczego staje się ona jedną z tych rzeczy, których szanowani programiści nigdy by nie używali, nawet ci, którzy nawet nie wiedzą po co to jest. Powiedzmy, że tworzę aplikację, w której użycie pamięci jest bardzo różne w …
Rozważmy następujący program w C #, przesłałem go na codegolf jako odpowiedź na utworzenie pętli bez zapętlania: class P{ static int x=0; ~P(){ System.Console.WriteLine(++x); new P(); } static void Main(){ new P(); } } Ten program wygląda jak nieskończona pętla podczas mojej inspekcji, ale wydaje się, że działa przez kilka …
Skonfigurowałem Javę do zrzucania informacji o wyrzucaniu elementów bezużytecznych do dzienników ( pełny GC ). Nie jestem pewien, co oznaczają wpisy dotyczące czyszczenia pamięci w dziennikach. Przykładowe wpisy zamieszczono poniżej. Szukałem w Google i nie znalazłem solidnych wyjaśnień. Mam kilka rozsądnych domysłów, ale szukam odpowiedzi, które zawierają ścisłe definicje tego, …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.