Czy system zbierania śmieci z Androidem wstrzymuje działanie innych aplikacji?

Znalazłem informacje na temat zbierania śmieci z Androida, które są dla mnie sprzecznością.

Android Devevelopers Guide mówi:

Android 3.0 to pierwsza wersja platformy zaprojektowana do pracy na architekturach z pojedynczym lub wielordzeniowym procesorem. Różnorodne zmiany w Dalvik VM, bibliotece Bionic i innych miejscach obsługują symetryczne przetwarzanie wieloprocesorowe w środowiskach wielordzeniowych. Te optymalizacje mogą przynieść korzyści wszystkim aplikacjom, nawet tym, które są jednowątkowe. Na przykład, w przypadku dwóch aktywnych rdzeni, aplikacja jednowątkowa może nadal widzieć wzrost wydajności, jeśli zbieracz śmieci Dalvik działa na drugim rdzeniu. System zorganizuje to automatycznie ”.

Ok, teraz inna sprawa

Zgodnie z tym linkiem:Architektura maszyny wirtualnej Dalvik Android używa znaku „mark and sweep”.

Obecna strategia w zbieraczu śmieci Dalvik polega na przechowywaniu bitów znaczników lub bitów, które wskazują, że dany obiekt jest „osiągalny”, a zatem nie powinny być zbierane śmieci, niezależnie od innej pamięci sterty.

Jeśli sprawdzimy, jak działa znak i zamiatanie na tym linku:Mark and Sweep Garbage Collection Algorithm , widzimy to:

Główną wadą podejścia znakowania i zamiatania jest fakt, że normalne wykonywanie programu jest zawieszone podczas działania algorytmu usuwania śmieci. W szczególności może to być problem w programie, który współdziała z użytkownikiem lub musi spełniać ograniczenia wykonywania w czasie rzeczywistym. Na przykład aplikacja interaktywna, która używa zbierania znaczników i zmian, przestaje odpowiadać okresowo.

Teraz moje pytanie brzmi: jak to naprawdę działa? Czy garbage collector wstrzymuje wszystko, gdy pracuje, czy może jest całkowicie niezależny od innego aktywnego rdzenia procesora?

questionAnswers(3)

yourAnswerToTheQuestion