Przeglądarki są jak ludzie - oni się starzeją, dostają duże, a oni się porzuciła dla młodszych i lżejszych modeli.
Firefox to nie tylko przeglądarka, to ekosystem. Chociaż wydaje mi się, że ostatnie wersje są dość rozdęte, podstawowy produkt jest ogólnie stabilny.
Jednak firefox to ekosystem/platforma:
1) źle napisany wtyczek
2) źle napisany kod JavaScript, który realizuje się w niej.
3) Adobe Flash jako platforma do filmów o dużej wadze i dla źle napisanych skryptów reklamowych, takich jak "hit Osama bin Laden z kaczką, aby obniżyć stopę kredytu hipotecznego i otrzymać darmowy iPod * (wymagany udział).
4) QuickTime i inny odtwarzacz multimedialny.
5) Niektóre wbudowane kody Java.
Opis wycieku pamięci sugeruje skrypt z amokiem lub narzędzie innej firmy żądające większej ilości pamięci. Jeśli kiedykolwiek uruchomisz Flash na komputerze Mac, to prawie podana wraz z 90% wykorzystania procesora.
Celem większości języków programowania nie jest oszczędzanie, ale dostarczenie narzędzi do oszczędzania. Możesz napisać niepoprawny i nadęty kod z wyciekami pamięci w dowolnym języku, w tym z wyrzucaniem elementów bezużytecznych.Narzędzia innych firm zwykle nie są tak dobrze testowane, jak sama platforma. Strony internetowe, które próbują robić zbyt wiele, również nie są rzadkie.
Jeśli chcesz zrobić eksperyment, aby to zademonstrować, zdobądź Maca w Firefoksie i przejdź do dobrze napisanej strony, takiej jak Stack Overflow, i spędź godzinę. Twoje zużycie pamięci nie powinno rosnąć zbyt wiele. Następnie spędź 5 minut na losowych stronach Myspace.
Teraz pozwól mi spróbować odpowiedzieć na Twoje pytania na podstawie moich domysłów, ponieważ nie jestem zaznajomiony z kodem źródłowym
- Kiedy zamknąć wszystkie karty, dlaczego nie zużycie pamięci przejść całą drogę w dół do ?
Zważywszy każdej instancji przeglądarki to niezależny proces z własnej pamięci, karty w jednym oknie znajdują się w tym samym procesie. Firefox miał kiedyś buforowanie w pamięci, a samo zamknięcie karty nie powoduje natychmiastowego usunięcia odpowiednich informacji z pamięci podręcznej w pamięci. Jeśli ponownie otworzysz kartę w tej samej witrynie, możesz uzyskać lepszą wydajność. Była pewna zaawansowana opcja pozwalająca ci ją wyłączyć, coś jak browser.cache.memory.enable. Lub po prostu wyszukaj wyłączenie pamięci podręcznej.
* Why is there no limits on extensions/themes/plugins memory usage?
Z tego samego powodu, dla którego system Windows lub Linux nie ma procesu sprawdzania aplikacji, które można na nich uruchomić. To otwarte środowisko i ryzykujesz. Jeśli chcesz środowisko, w którym aplikacje i rozszerzenia są „zatwierdzone”, Apple może być droga :)
* Why does the memory usage increase if it's left open for long periods of time?
Nie wszystkie obliczenia i działania w skrypcie mieć przejawy wizualne. Scenariusz może robić pewne rzeczy w tle (jak żądanie dodatkowych materiałów, wstępne pobieranie rzeczy, tylko błędy), nawet jeśli go nie widzisz.
* Why are memory leaks so difficult to find and fix?
Chodzi o księgowość. Pomyśl o każdej rzeczy, którą kiedykolwiek wypożyczyłeś (nawet długopis) lub o tym, że ktoś pożyczał od ciebie w ciągu całego twojego życia. Czy wszystkie są rozliczane? Wycieki pamięci są w ten sam sposób (pożyczysz pamięć z systemu), z wyjątkiem tego, że przekazujesz przedmioty dookoła. A potem spójrz na rzeczy na biurku, czy zostawiłeś coś w pobliżu, bo "może będziesz tego potrzebować wkrótce", chociaż prawdopodobnie nie będziesz? ta sama historia.
to pytanie jest trochę za szerokie. Firefox cierpi na wycieki pamięci, najlepiej jest przeczytać ten temat. Zamykanie kart niekoniecznie zwalnia pamięć przydzieloną dla tej karty. –
i twoje pytanie programistyczne jest? – KevinDTimm
@KevinDTimm to ostatnia kula na liście – David