Mozilla potwierdza wycieki pamięci Firefoksa
- Dodano: 13 November 2007
- Wprowadził: michuk
- Komentarze: 51
Nie bezpośrednio, ale Christopher Blizzard, członek zarządu Mozilli, potwiedził to co wszyscy wiedzieli od dawna — Firefox, flagowy produkt open-source — ma wycieki pamięci. Blizzard za wszystko obwinia fragmentację pamięci i “zaśmiecanie alokatora”.
Blizzard na swoim blogu pisze, że programiści Firefoksa ze wzmożoną siłą badają obecnie przyczyny takiego stanu rzeczy. Jest to związane głównie z mobilnymi planami Mozilli, która chce, żeby Firefox był używany również na komórkach i innych urządzeniach przenośnych. Obecnie ten rynek jest opanowany przez komercyjne rozwiązania jak Opera Mini/Mobile, IE oraz inne, pomniejsze projekty.
Stuart Parmenter, deweloper Firefoksa opublikował obszerny raport z badań nad przyczynami fragmentacją pamięci podczas korzystania z programu. Wynika z niego, że problem “gubienia” małych bloków pamięci jest poważny i nie należy się spodziewać rozwiązania w najbliższej przyszłości.
Jedyna rada na dziś to restart Firefoksa co najmniej raz dziennie w przypadku częstego korzystania z tej przeglądarki, albo przesiadka na Konquerora czy Operę, które nie mają takich problemów.
Więcej informacji: http://www.daniweb.com/blogs/entry1814.html
Znalazłeś literówkę? Zgłoś ją używając formularza!
Jeśli uważasz, że ten nius jest nieobiektywny, przedstawia nieprawdziwe wydarzenie, jest spamem lub nie spełnia standardów serwisu, napisz raport.
Niusy na podobny temat:
Komentarze są prywatnymi opiniami dodających je osób. Prosimy o zachowanie kultury wypowiedzi. Komentarze obraźliwe oraz obniżające poziom serwisu będą usuwane. Więcej w regulaminie komentowania.
51 komentarzy
Wszystkie autorskie niusy w serwisie publikowane są na licencji Creative Commons Uznanie autorstwa 2.5 Polska.
A myslalem, ze z wersja 3 Firefoxa o tym zapomnimy ;/
Przykre ale niestety nie widzę alternatywy póki co… U mnie firefox zostaje…
Może przeglądnij repozytoria swojego systemu ? Moim zdaniem Firefox jest zwyczajnie przereklamowany. Jego silnik wcale taki dobry nie jest (w porównaniu z silnikami Opery i Konquerora), to co inne przeglądarki mają od dawna, tutaj trzeba ściągać jako rozszerzenia, co zmniejsza stabilność. O mułowatości nie wspomnę
Nie chcę się kłócić, dopóki nie używasz IE jest dobrze
Ale co takiego jest w Firefoksie, że naprawdę warto go używać ?
Kupe rozszerzeń których nie ma u konkurencji a bez których (ja osobiście) nie potrafiłbym żyć w świecie http?
Konkrety! Konkrety!
np foxtrick ;]
Świat bez reklam jest piękny! Adblock + Filter.G.set
Firebug
FireBug + WebDeveloper to must have do grzebania w stronach. Do tego AdBlock i automat do przełączania słowników.
# Adblock Plus 0.7.5.3 – Powiedz NIE! reklamom
# Advanced Bookmark Search 0.3 – Advanced Bookmark Search
# Bookmark Duplicate Detector 0.6.3 – Helps you find, move and remove duplicate bookmarks. It also notices you when you are adding a bookmark already in your Bookmarks.
# CacheIt! 1.0beta1 – Displays an archived version of a webpage.
# Download Manager Tweak 0.7.2 – A modification of the Firefox download manager that changes its appearance and allows it to be opened in a separate window, a new tab, or the sidebar.
# Flashblock 1.5.4.1 – Replaces Flash objects with a button you can click to view them.
# MR Tech Local Install 5.3.2.6 – Mnóstwo narzędzi dla wszystkich użytkowników (pl-PL)
# No Go Buttons 0.1.1 – Remove Go buttons from the Address and Search bars.
# Nuke Anything Enhanced 0.54 – Allow hiding of almost anything via context menu
# Ook? Video Ook! 0.6.6 – Ook? Video Ook! Pozwala na łatwe pobieranie plików wideo.
# Page Animation 0.5.4 – Provides some control over animated page objects
# Paste and Go 2 0.8 – Paste Text and Load/Search It Immediately
# PDF Download 0.9.3.2 – Rozszerzenie pozwala wybrać sposób postępowania z plikami PDF: zapisać na dysku, obejrzeć w zewnętrznym czytniku lub zobaczyć w formacie HTML.
# Tab Mix Plus
# No Go Buttons 0.1.1 – Remove Go buttons from the Address and Search bars.
To da się załatwić bez użycia wtyczki edytując userChrome.css
@Jabbas: Z drugiej strony konkurencja (Opera) ma bez wtyczek funkcjonalnosc, ktora nawet z wtyczkami pod Firefoksem bywa problematyczna, na przyklad gesty mysza, automatyczne odtwarzanie sesji oraz undo.
Otwarty kod (tego nie uświadczysz w Operze), domyślne sprawdzanie pisowni … mało ?
99% userów ma głęboko i daleko otwarty kod, więc nie wiem co to niby za przewaga nad Operą.
Mnie do Opery przekonało głównie to, że mam wszystko co mi potrzebne (blokada reklam/poczta/irc/rss/gesty) w jednym, a nie w setkach pluginów.
@jeronimmo: Otwarty kod do niczego mi nie jest potrzebny, nie mam zamiaru w cudzym kodzie gmerac. Sprawdzania pisowni rowniez nie potrzebuje.
Przecież Opera i Konq mają sprawdzanie pisowni… Inne przeglądarki mają funkcjonalność wymienionych rozszerzeń bez instalowania czegokolwiek – "No Go Buttons" to już szczyt
W mojej instalacji Firefoksa mam tylko WebDevelopera i Firebuga, ale nie służą one uprzyjemnieniu obsługi, tylko służą do czego innego, jakiś raz na miesiąc.
e, w czym problem z adblockiem – do opery dodajesz sobie tylko liste blokowanych (np. stad http://www.ghostx.megapliki.pl/blog/2007/11/04/br… ) i już problemu nie ma. poza tym… taki flejm się maly zrobil ;p
@lubielizac i @trasz: otwarty kod jest bardzo ważny, bo gwarantuje Ci szybkie poprawianie bugów i kompletnie niweluje możliwości ich ukrywania, czego przy zamkniętym kodzie nigdy nie możesz być pewien. Dla tych 99% userów ważne jest aby nikt przed nimi nie ukrywał bugów, co nie zmienia faktu, że Ci userzy nie wiedzą, że dla nich ten kod jest istotny. Dlatego powstała idea OpenSource i ruch Wolnego Oprogramowania, aby ich też w jakiś sposób uświadamiać.
@mario: Guzik prawda. Jedyna rzecz, od ktorej zalezy predkosc poprawiania bugow, jest stopien zainteresowania autorow poprawianiem bugow. Firmom zwykle zalezy na poprawianiu bugow, bo od tego zalezy ich dochod. Autorowi programu darmowego moze sie po prostu znudzic. Jesli nikomu innemu nie bedzie sie chcialo wziac za kod, to nikt ci go nie poprawi. Masz ochote robic to sam? Rob. Wiekszosc ludzi nie ma i koniec rozwoju jest dla nich jak bankructwo producenta softu zamknietego – albo ktos to podchwyci (wykupi produkt z masa upadlosciowa), albo nie.
O, jedna _bardzo_ wazna rzecz w Operze, ktora w pozostalych przegladarkach jest skopana i czlowiek przypomina sobie o tym pietnascie sekund po skorzystaniu z wyszukiwarki w Firefoksie – automatyczne ustawianie focusa na pierwszego z brzegu inputa. W Fx trzeba sie "dotabowac" albo kliknac mysza, w Operze od razu mozna pisac.
trasz co do tego ma Opera?
"Guzik prawda. Jedyna rzecz, od ktorej zalezy predkosc poprawiania bugow, jest stopien zainteresowania autorow poprawianiem bugow."
Nie zgadzam się! Prędkość poprawiania bugów i zainteresowanie bugiem przez firmę tworzącą zamknięty soft jest zależny głównie od nagłośnienia problemu przez media i portale typu securityfocus czy secunia. Jeśli nikt o bugu nie wie to firmy poprawianie go mają głęboko gdzieś. MS do dzisiaj nie poprawił błędów w IE zgłoszonych przez mojego kolegę 2 lata temu (3 zdalne ataki DoS na IE). Czytałem też o takim przypadku, że gość zgłosił błąd krytyczny w jakimś sofcie MS (chyba też IE) i podpisał z Microsoftem NDA, czyli nie mógł nikomu o tym bugu mówić. MS nie poprawiał błędu przez długi okres czasu i po 2 latach po ściągnięciu mało ważnej aktualizacji exploit przestał działać. MS nie chciał przyznać się do tego błędu i nie chciał aby był on zliczony przez portale zajmujące się bezpieczeństwem do błędów krytycznych – ma to wpływ na postrzeganie jakiej jakości jest ten soft. Gość jak to zobaczył i zanalizował wściekł się na maxa i opublikował na internecie historię, łamiąc NDA (niestety nie pamiętam strony).
Takie historie są możliwe tylko przy zamkniętym oprogramowaniu. Przy oprogramowaniu otwartym łatwiej szuka się bugów, bo są źródła dzięki czemu w początkowym okresie życia programu bugów zgłaszanych jest dużo (w stosunku do ilości userów), a później coraz mniej. W sofcie zamkniętym nigdy nie możesz być pewien czy ktoś nie używa przeciw Tobie jakiejś nieznanej dziury – w przypadku softu otwartego łatwiej ją znaleźć i nie da się ukryć (publiczny bug tracker).
Tak naprawdę to nikt nie wie ile krytycznych dziur w Windowsach zostało poprawionych, o których wie tylko MS i osoby zgłaszające, które podpisały NDA (my nie).
Taki model nie oferuje nam bezpieczeństwa. Bo jeśli przestępca używa tego samego oprogramowania co my i znajdzie błąd to jest problem, w przypadku softu OpenSource, przestępca nie jest nigdy pewien czy mamy tę samą kompilację, a prawdopodobnie ktoś zgłosił już ten błąd przed nim. Poprawka błędu to koszta i firmy, gdy tylko mogą ten błąd ukryć, to unikają kosztów. Ukrywanie błędów jest przeciwko nam.
@trasz
to mnie rozbawiłeś
" Firmom zwykle zalezy na poprawianiu bugow, bo od tego zalezy ich dochod." hehehe dawno się tak nie usmiałem.
To tylko teoria która nie ma potwierdzenia w praktyce. Jak mario powiedział firmie zależy najbardziej na zminimalizowanie kosztów i maxmalizacja zysków. Nic więcej. Jeśli naprawienie buga jest kosztowo akceptowalne dla firmy i mamy na to srodki to sie naprawi. Sam pracuje i znam conajmniej kilka bugów w oprogramowaniu produkowanym przez naszą firmę którymi a)nie ma sie kto zająć(brak czasu) b)nie stwarzaja wielkiego problemu c)występują na tyle rzadko że taniej jest obslużyć skutki. I skłonny jestem uogólnić że z pdobnych względów błędy są nie naprawiane w większości firm, a także projektów OS. I jeszczcze jedno, upublicznianie buga? Po co? Żeby psuć sobie renome? Żaden zdrowo myślący marketingowiec nie powie ci o bugach w aplikacji jeśli sam ich nie zauważysz!!
Raz dziennie wydaje mi się lekkim przegięciem i zabiegiem dramatyzującym. Nie mam przesadnie dużo RAM-u (384), sporo korzystam z FF, a jednak restartuję go mniejwięcej co tydzień. (A co dwa tygodnie całe X-y).
Raz dziennie jest lekkim przegięciem – tak, bo trezba to robić częściej.
Swego czasu bardzo intensywnie używałem Opery/Liska jednocześnie (pod windowsem dochodziło jeszcze IE) lub na przemian. Zazwyczaj wystarczyło 4-5h intensywnego korzystania żeby responsywność przeglądarki spadła praktycznie do 0. Jak czytam te teksty o przeglądarce włączonej przez tydzień to mi się smiać chce. :/
Ja nie mam zadnych wyciekow pamieci w epiphany ktore tez korzysta z gecko jak na razie, i nawet smiga na pentium2 350MHz i to tygodniami(glownei za telegazete robi, ale 2 lata na nim normalnie siedzialem i tez problemow nie bylo)
Może i są te wycieki ale jakoś na własnej skórze tego nie odczuwam
Ja zauważam dosyć często, zwłaszcza po wielu zapytaniach AJAX-owych. No ale to zależy od stron, które się przegląda, u jednych widać, u innych nie.
Do Apage: być może pamięć wycieka w całej XUL-owej otoczce, nie w silniku?
A ja mam wycieki pamięci. Na Athlonie x2 3800+ z 1 GiB RAMu po zostawieniu 100 zakładek 'na noc' sprzęt ma ponad 90% pamięci zajęte i nie da się na nim normalnie pracować… FireFox ma wycieki 'od zawsze', tylko że do tej pory podmiatano kłopoty pod dywan, zwalając winę na błędy w testowych wersjach albo waląc ściemę o cache'owaniu stron w RAMie 'żeby się prędzej ładowały zakładki'.
nie raz mialem wlaczonego firefoxa pare dni albo i tydzien i nic zlego sie z nim nie dzialo
Może z moim angielskim nie jest najlepiej, ale jak się ma tytuł newsa do ,,materiału źródłowego'', czyli notki w blogu?
(Wytłuszczenie moje)
Zajętość pamięci wynika z czego innego:
Heh… kolejny "objektywny" nius?
"and it sounds like the early data suggests that >>>Mozilla really doesn’t leak that much memory at all
Ops. Komentarze nie zamieniaja >… uwaga na XSS
wklejam dalej:
"But it does thrash the allocator pretty hard and that’s what causes the perception of memory leaks"
"albo przesiadka na Konquerora czy Operę, które nie mają takich problemów."
Mozesz przytoczyc dane wskazujace powyzsze? Nie, serio. Dane. Wyniki analiz, debuggowania, mapy pamieci. To wszystko co otwarty projekt Mozilla nie tylko udostepnia, nie tylko robi, ale tez do czego udostepnia narzedzia i zacheca bys sam pobawil sie takimi analizami. Mozesz mi chocby skromny ulamek czegos takiego pokazac dla WebKita i Opery?
Jesli zas, ojej, nie mozesz, to mozesz wytlumaczyc co ma na celu powyzsze zdanie? I dlaczego brzmi tak tendencyjnie? :/ Z dziennikarstwa dwoja. Z czytania ze zrozumieniem dwoja. Z "sensacyjnego niusa z moralem" czwora
Dalsze elementy:
http://shaver.off.net/diary/2007/11/13/leaking-gr… http://pavlovdotnet.wordpress.com/2007/11/13/allo…
Mówiąc szczerze nie miałem ochoty wchodzić w szczegóły. Deweloperzy Firefoksa nie nazywają to "wyciekiem pamięci", tylko "fragmentacją pamięci" związaną z "zaśmiecaniem alokatora". Efekt jest taki, że korzystanie z Firefoksa powoduje, że pamięci ubywa. Co się z nią dzieje jest mało interesujące dla użytkownika.
Mógłbym wchodzić w techniczne zagadnienia nt przyczyn wycieków pamięci i podawać przykłady kodu w C/C++, który powoduje takie zachowanie, ale to by raczej mocno utrudniło odbiór niusa przez osoby nie będące programistami. Dlatego wolałem uprościć.
Co do Opery i Konquerora — nie mam danych, mam "jedynie" kilkuletnie doświadczenie w korzystaniu z tych trzech przeglądarek. Firefox "gubi RAM". Konqueror i Opera nie. Czy to wycieki pamięci czy "trashowanie alokatora" — jakie to tak naprawdę ma znaczenie. Liczy sie to, że użytkownik Firefoksa musi go nieustannie restartować, a użytkownik Opery radzi sobie bez tego.
PS. Sam używam Firefoksa, ze względu na wtyczki
Ejże, wyciek a słabe zarządzanie pamięcią to dwie różne sprawy.
Dla programistów uproszczona fragmentacja pamięci alokatora na przykładzie:
1. aplikacja chce 100kB od alokatora – alokator pobiera z systemu 100kB
2. aplikacja chce 200kB od alokatora – alokator pobiera z systemu 200kB
3. aplikacja chce 110kB od alokatora – alokator pobiera z systemu 110kB
łącznie mamy pobrane z systemu 410kB
4. aplikacja zwalnia 100kB z punktu 1. oraz 110kB z punktu 2. – alokator nic nie zwalnia do systemu
5. aplikacja chce 120kB od alokatora – alokator nie ma ciągłego obszaru 120kB więc pobiera z systemu 120kB
łącznie z systemu mamy pobrane 530kB, pomimo, że 210kB (w dwóch częściach 100kB oraz 110kB) jest nie używane.
Nie wiem o czym Wy piszecie, jeszcze nie zdarzyło mi się restartować FF z powodu jakichś wycieków ani raz dziennie ani po tygodniu a używam go na dwóch maszynach.
Może nie używasz wielu dodatków i nie korzystasz intensywnie z przeglądarki (intensywnie czyli kilka godzin dziennie, średnio z 10-15 zakładkami w jednym oknie).
A tak z trochę innej beczki. Coś wiadomo więcej o tym ze Firefox ma zrobić konkurencje dla Opera mini? Jest jakaś strona projektu?
pierwsze slysze…
Jest problem i to spory, czasami trzeba resetować a nawet dobijać xkill'em.
Ja tylko czekam, aż GNOME'owa przeglądarka, Epiphany, dorobi się stabilnego WebKitu.
rozwiazaniem jest … laptop
conajmniej 2 starty dziennie (raz w domu raz w pracy) i po sprawie
Hmm ja swojego laptopa nie restrartowałem od tygodnia (używam 2 razy dziennie w pociągu).
raz na pare dni restartuje, bo Xy ciekna
Xy? chyba tylko na debianie :pp
spadaj waflu zapyziały
Problem ze stabilnością FF (oraz wcześniej Mozilli) ewidentnie zależy od 'egzemplarza' przeglądarki (w powiązaniu z kernelem, bibliotekami i całym pozostałym 'tłem' systemu). Używam FF oraz starszej Mozilli 1.8 na dwóch workstacjach z FC2 i FC4. Na jednej z maszyn Mozilla/FF od zawsze działały __bardzo__ stabilnie, dla mnie samego zaskakująco stabilnie. Mam taką 'cechę', że używam tabów zamiast bookmarków
, więc otwieram ich przynajmniej kilkadziesiąt jednocześnie, nierzadko w kilku oknach. Ostatnio musiałem zrestartować FF po dopiero 3 miesiącach (sic!). Dodam, że po trzech miesiącach codziennego aktywnego używania, po 6-8 godzin dziennie (komp działa – jak to serwer – 24/7). Oczywiście, że z biegiem czasu responsywność przeglądarki oraz iksów malała, ale dopiero po 3 miesiącach było to nie do zniesienia. Maszyna bardzo słaba, ledwie Pentium 450Mhz (x2) i mikroskopijna ilość RAMu – 384MB. Mozilla nie działała gorzej.
Dla odmiany ten sam build FF, wyposażony w te same wtyczki (ok. 10), na FC4 działającej na 2GHz procku i 1GB ramu, używany z podobną i większą aktywnością (średnio ok. 150 tabów), mało kiedy wytrzymuje tydzień, zazwyczaj sam się wykrzacza. Co może być istotne – wszędzie nad blokowaniem flasha czuwa u mnie flashblock
Konklucja może być taka, ze FF potrafi działać stabilnie, o ile zechce
Popieram, zależy od wersji. Ewidentnie debianowa z rozszerzeniami z addons.mozilla.com sobie nie radzi…
Ta z paczek z mozilla.com radziła sobie czasami lepiej, czasami gorzej. Najlepiej radził sobie Skipstone (GUI w gtk+ 1.2.x do libmozembed!). Ładował się rewelacyjnie szybko, bo bez XUL'a, chodził stabilnie i miał większość funkcji Mozilli, ale dawno projekt nie był aktywnie rozwijany…:/
M.in. z tego powodu powstał też Firefox – żeby skrócić czas ładowania i wymagania względem systemu. A wyszło jak zwykle…;)
a ja restartuje firefoxa raz na rok i rzandych wyciekow nie mam.. srdnio zuzrzywa mi 400 kb/ ramu
@rambo a aktualizacji ty nie robisz? 400kb? to nawet podstawowa strona Google więcej zajmuje.
Co do problemów to ja w Firefoksie żadnych nigdy nie miałem, niezależnie na jakim systemie. Może to tylko fart ale tak jest. Za to mógł bym ponarzekać na wiele innych aplikacji (nie tylko przeglądarek), np. ostatnio mam problemy z Rhythmboxem, ciągle wiesza mi system i to kompletne. Wiem ze to również wina płyty głównej ale przy nim najczęściej to się dzieje.
"Blizzard za wszystko obwinia fragmentację pamięci i “zaśmiecanie alokatora”"
dziwne, a myślałem, że wszystko to wina PO
A na poważnie, co za problem zaimplementować jakiś memory pool i override'nąć operatory new i delete? jest ich łącznie raptem 8