Jak przyśpieszyć Firefoxa? – mini-poradnik

Sam jestem od kilka lat użytkownikiem Firefoxa. Prawdę mówiąc, jestem jego użytkownikiem od kiedy tylko posiadam dostęp do internetu. Próbowałem wielu rozwiązań, jednak to właśnie panda mała przypadła mi do gustu i obecnie nie jestem w stanie przesiąść się na coś innego, pomimo że konkurencja w niektórych dziedzinach jest wyraźnie lepsza. Niemniej zdaję sobie sprawę z wad tej przeglądarki i muszę się liczyć z trudnościami z nich wynikającymi. Największym problemem jest jak dla mnie wydajność Firefoxa – w porównaniu do Chroma, czy w szczególności Opery wypada on nad wyraz blado. Co prawda najnowsza, czwarta odsłona przeglądarki to pewna poprawa, lecz nadal ciężko mówić o komforcie użytkowania gdy korzystamy z kilku dodatkowych narzędzi i wielu zakładek. Z tego właśnie powodu od dawna szukam metod na przyśpieszenie Firefoxa, nie w celu jakichkolwiek beznadziejnych benchmarków, lecz po prostu dla zwiększenia własnej wygody. Postanowiłem podzielić się z innymi rozwiązaniami, które przetestowałem i które uważam za dosyć trafne.

Firefox 5+

Pierwsze z rozwiązań jest dosyć przewidywalne, przynajmniej gdy staramy się być jak najbardziej na bieżąco – możemy zainstalować Firefoxa z kanału Aurora (aktualnie jest to wersja 5), lub też użyć wersji Nightly. Co prawda możemy przez to stracić na stabilności, w tym drugim wypadku nawet poważnie, niemniej wiele osób potwierdza, że wersja z kanału Aurora jest nie tylko znacznie szybsza, ale również stabilna i bezproblemowa. Za jakiś czas dostępny będzie również kanał beta, będący ostatnim „przystankiem” przed wersją stabilną, a więc kompilacja, która powinna być jeszcze znaczniej stabilna. Wadą jest natomiast niezgodność z niektórymi rozszerzeniami: czasami wystarczy np. użyć narzędzia Nightly Tester Tools aby po prostu wymusić zgodność i wszystko będzie funkcjonować poprawnie, czasami natomiast zabieg ten nie pomaga i rozszerzenie stanie się dla nas bezużyteczne. Tutaj sytuację mogą poprawić ostatnie zmiany związane z zatwierdzaniem zgodności dodatków, które powinny znacznie przyśpieszyć dostępność nowych, zaktualizowanych i zgodny z najnowszymi wydaniami Firefoxa rozszerzeń.

Pale Moon / Swiftfox

Oprócz korzystania z „czystego” Firefoxa możemy wykorzystać również wersje wstępnie zmodyfikowane, które w zamierzeniach twórców mają się cechować wyższą wydajnością. Dla systemów Windows aplikacją taką jest Pale Moon: zawiera on zmiany i optymalizacje dla najnowszych systemów, oraz nowych procesorów, dzięki czemu dostajemy do dyspozycji przeglądarkę z min. szybszym wykonywaniem javascript. Dodatkowo już od samego początku zmienione są niektóre opcje konfiguracyjne (o których będzie nieco dalej), które pozwalają na szybsze ładowanie się przeglądanych witryn. Dostępna jest również eksperymentalna wersja 64-bitowa, która cechuje się efektywniejszą pracą, chociaż użycie pamięci może być nieco wyższe, no i nie będziemy w stanie skorzystać ze wszystkich wtyczek (z flashem problemu nie ma, dostępna jest wersja beta pod x64, która działa poprawnie i nie napotkałem na trudności podczas korzystania z niej). W obu wypadkach korzystać możemy zarówno z motywów, jak i rozszerzeń czy nawet profili użytkowników z oryginalnego Firefoxa, większość z nich powinna działać bez najmniejszych problemów.

Wadami Pale Moona jest brak wsparcia najnowszej, czwartej odsłony przeglądarki dla procesorów Athlon XP, oraz brak wersji dla systemów innych niż z rodziny MS Windows. Na ratunek przychodzi jednak Swiftfox – inny „mod” Firefoxa, który jak najbardziej możemy zainstalować na Linuksie i cieszyć się oprogramowaniem zoptymalizowanym pod sprzęt. Niestety w tym wypadku nie mamy dostępu do wstępnie zmodyfikowanej najnowszej wersji przeglądarki, dostępna jest tylko wersja z gałęzi 3.6.x, do tego nieaktualna względem dostępnych wersji Firefoxa. Jak wygląda szybkość działa w tym wypadku nie jestem w stanie powiedzieć, ponieważ nie miałem okazji używać Swiftfoxa.

Instalacja dodatków, problemowe działanie

Jakiś czas temu Mozilla opublikowała listę wtyczek, które w największym stopniu spowalniają uruchamianie przeglądarki. Z listy „10 wspaniałych” używam między innymi Firebuga – na testowym komputerze z zainstalowanym Windows 7 instalacja tego rozszerzenia spowodowała wydłużenie uruchamiania o prawie 80%… licząc konkretniej, jeżeli Firefox startował w 4 sekundy, teraz zajmie mu to około 7 sekund. Zmiana jak najbardziej odczuwalna. Lista ta, wraz z przypomnieniami wysyłanymi do autorów niesławnych ostrzeżeń ma ich zmotywować do optymalizacji ich dzieł. Dlaczego podjęto taki krok? Jeżeli dodatki powodują wolne działanie przeglądarki, wina spada na jej autorów, zamiast na developerów dodatków. Firefox zdobył natomiast sporą popularność właśnie za sprawą ogromnej już bazy rozszerzeń, dzięki którym możemy niemal dowolnie go spersonalizować i dopasować do własnych potrzeb.

Warto również pamiętać o pluginach (wtyczkach), takich jak Adobe Flash, Silveright, Java, ale również wiele innych, które często są dodawane i automatyczne uruchamiane bez naszej zgody. Dzieje się to np. w wypadku instalacji Adobe Readera, Skype’a, pakiet Office, oraz wielu innych aplikacji. W każdej chwili możemy zbędne nam pluginy wyłączyć, co warto uczynić. Na szczęście i tutaj Mozilla postanowiła wziąć sprawy w swoje ręce i za jakiś czas będziemy mieli większą kontrolę nad wtyczkami jakie działają i które są instalowane, chociażby „przy okazji” instalowania zupełnie innego oprogramowania. Szczerze mam nadzieję, że otrzymamy coś podobnego do informacji jakie prezentuje najnowsza odsłona Internet Explorera – głównie mam na myśli informacje o czasie, o jaki wydłużają uruchamianie przeglądarki te wszystkie dodatki.

Ręczne zmiany w about:config

Pisząc o Pale Moonie wspomniałem o zmianach w konfiguracji przeglądarki. Sami możemy również dokonać kilku prostych, niewielkich i bezpiecznych zabiegów, dzięki którym zyskamy chociaż na szybkości ładowania witryn. W pasku adresu wpisujemy „about:config”, następnie zapoznajemy się z ostrzeżeniem i przechodzimy dalej. W pasku filtra wpisujemy „pipeli”, tyle powinno wystarczyć, abyśmy zobaczyli 4-5 ustawień do dyspozycji. Zmieniamy je dwuklikiem na następujące:

network.http.pipelining na „true”

network.http.pipelining.maxrequests na „8”

network.http.proxy.pipelining na „true”

Dzięki tej prostej zmianie nasza przeglądarka będzie mogła wysyłać jednocześnie kilka żądań do serwerów z którymi komunikacja jest wymagana bez oczekiwania na odpowiedź z poprzedniego żądania. Poradę tą można znaleźć w wielu miejscach w internecie, wiele osób zaleca ustawienie zupełnie innych wartości, a i sam Pale Moon ma domyślnie ustawioną maksymalną ilość żądań na 16. Ja jednak pozostaję przy tylko / aż ośmiu, ponieważ z tego co wiem jest to ustawienie najbardziej stabilne i obecnie najmniej problemowe. Na podstronie konfiguracyjnej możemy zmienić jeszcze multum innych opcji, ale ja wolałbym pozostać na tym, ponieważ nie zawsze możliwe jest sprawdzenie, czego konkretnie dotyczą wartości zalecane do modyfikacji w ogólnodostępnych poradach. Wspomnę więc o jednej jeszcze tylko opcji: browser.tabs.animate – odpowiada za animacje kart w Firefox 4 (lub nowszym) podczas ich otwierania / zamykania. Domyślnie jest to opcja włączona, ale w wypadku mojego laptopa z kartą Radeona zauważyłem lekkie „ścinanie” się tego efektu gdy plan zasilania jest ustawiony na enerooszczędny. Po wyłączeniu efektu (przełączamy wartość na false), problem rzecz jasna zniknął, razem z efektem oczywiście. Być może komuś się to przyda.

Ustawienia wielkości cache

W wypadku Firefox 3.x domyślną maksymalną wartością pamięci podręcznej na dysku to 50 MB. Przy przeglądaniu kilku stron w przeciągu kilku dni jest to wartość wystarczająca, lecz w miarę czasu okazuje się zbyt mała. W czwartej i wyższych wersjach wartość ta została zwiększona aż do 1024 MB (1 GB), co stanowi już w zupełności wystarczające cache, a zarazem pojemności ówczesnych dysków twardych sprawiają, iż jest to rozmiar wręcz pomijalny dla reszty naszych potrzeb. Warto dla pewności sprawdzić czy ustawienia cache są optymalne w: Ustawienia -> Zaawansowane -> Sieć, ponieważ niektóre rozszerzenia takie jak np. Fasterfox mogą nam je zmodyfikować, niekoniecznie w odpowiednią stronę. Ktoś zapyta, po co w ogóle tak wielki zbiór plików tymczasowych? Ano z prostego powodu, jeżeli nie przeglądamy internetu w trybie prywatności, pobierane dane trafiają do tego bufora i przy następnym odwiedzeniu strony mogą być załadowane od razu z naszego dysku, bez konieczności ich pobierania, a to oczywiście rzutuje na szybkości ściągania i prezentowania nam danych – dane z dysku będą zawsze prezentowane szybciej, nawet w wypadku bardzo szybkiego połączenia internetowego (ponieważ dodatkowy czas to pobranie tych danych na dysk). Oczywiście wiele zależy od webmasterów i nagłówków jakie są wysyłane np. przy przesyłaniu grafik, ale o ile nie mamy problemów z miejscem na dysku, warto dosyć intensywnie korzystać z tej opcji.

Memory Fox

Niesamowitym i z całą pewnością godnym uwagi dodatkiem jest Memory Fox, kiedyś znany pod nazwą AFOM (co ciekawe, uruchamiany przez niego proces nadal działa pod taką właśnie nazwą). Prawdę mówiąc, nie jest to zwykłe rozszerzenie jakich wiele, ale niewielki program startujący z Firefoxem. Zapewnia on automatyczne, okresowe czyszczenie i zwalnianie pamięci przeglądarki, dzięki czemu możemy pozbyć się znanych w Firefoxie wycieków, oraz efektu coraz wolniejszej pracy aplikacji w funkcji czasu. Na początek miałem mieszane uczucia co do tego dodatku, ale naprawdę szybko przekonałem się, że były one nietrafione – to naprawdę działa i w końcu nie muszę co pewien czas zamykać i uruchamiać programu ponownie, aby dało się na nim sensownie pracować, w szczególności gdy korzystam z wielu innych rozszerzeń. Jako, że proces Memory Fox’a działa oddzielnie, został on wyposażony w bardzo ciekawą opcję, możliwość czyszczenia i optymalizacji zestawów pamięci innych programów. W efekcie dochodzi więc do sytuacji, w której Firefox z tym właśnie dodatkiem poprawia nam komfort pracy z np. Operą, Chrome, IE, Safari, a także zupełnie innymi aplikacjami, które nie muszą być przeglądarkami internetowymi!

Opcje są teoretycznie dosyć skromne, ale w praktyce w zupełności wystarczają: możemy ustalić co jaki czas pamięć ma być zwalniana, uruchomić informowanie dźwiękiem, dodać zapisywanie informacji o zwalnianiu do systemowego dziennika zdarzeń, a także utworzyć „czarną listę” procesów, które nie powinny być optymalizowane. Dodatkową zaletą jest fakt, iż Memory Fox współpracuje nie tylko ze stabilnymi wydaniami czystego Firefoxa, ale także ze wspomnianymi wersjami Aurora, Nightly, a nawet zmodyfikowanym Pale Moon’em. Wady? Oczywiście jest , na dodatek dosyć poważna: Memory Fox to rozszerzenie działające tylko w wypadku systemu z rodziny Windows. Poza tym dla zupełnego laika nieoczekiwana można być informacja o próbie uzyskania dostępu do innych procesów generowana przez oprogramowanie zabezpieczające (u mnie taki komunikat zaserwował SpyShelter). Nie jest to oczywiście złośliwe oprogramowanie, lecz takie komunikaty mogą być dla wielu osób czarną magią. Musimy również pamiętać, że w żadnym wypadku rozszerzenie to nie pozwoli nam na przyśpieszenie startu – może on zostać nawet zauważalnie zwolniony przez konieczność uruchomienia dodatkowego procesu (jeżeli używacie wielu wtyczek zapewniam, że warto ponieść taką stratę).

Start Faster

Kolejne ciekawe rozszerzenie, stworzone przez jednego z developerów Mozilli i stanowiące niejako pokaz tego, co zostanie zaimplementowane do Firefoxa domyślnie. Podobnie do Memory Foxa znacznie integruje ono w przeglądarkę, a także po części w system – zapewnia ono znacznie lepsze wykorzystanie mechanizmu Prefetch dostępnego w systemach Windows, dzięki czemu niektóre elementy przeglądarki są ładowane wraz ze startem systemu i start samej aplikacji może być znacznie szybszy. Według autora, nawet dwukrotnie szybszy. Pojawia się do tego dodatkowa usługa (tutaj również mogą pojawić się alerty różnych programów, SpyShelter wymagał zezwolenia na dodanie usługi). Szczerze nie wiem, czy udało się uzyskać aż taki wzrost szybkości uruchamiania, z całą jednak pewnością Pale Moon, z którego korzystam startuje szybciej. Niemniej nie możemy zapominać o tym, iż załadowanie odpowiednich bibliotek spada na barki procesu uruchamiania systemu i na tym etapie zaliczymy „stratę”, chociaż co prawda tylko raz, zaś zysk z uruchamiania będziemy odczuwać na czas całej sesji.

Firefox Preloader

Nie mogłem przy okazji tego wpisu nie wspomnieć o aplikacji, o której pisałem na blogu dawno, dawno temu. Ta niewielka aplikacja, której ostatnia wersja została opublikowana w 2005 roku ciągle działa i również jest zgodna z wstępnie zmodyfikowanymi wersjami Firefoxa! Co więcej, nie ma żadnego problemu z jej uruchamianiem na systemie 64-bitowym, chociaż i w tym wypadku musi to być niestety tylko i wyłącznie Windows. Preloader jak sama nazwa wskazuje, podobnie jak Start Faster ładuje wraz z systemem część danych, przez co później Firefox może być uruchamiany znacznie szybciej. Wadą jest natomiast to, że po uruchomieniu przeglądarki jej proces będzie nam „wisiał” w tle cały czas, przez co przy np. instalacji dodatków musimy sięgnąć do systemowego zasobnika i z menu Preloadera manualnie zresetować Firefoxa. Wzrost szybkości uruchamiania jest niesamowity, odczuwalny i cieszący oko, jednak wydaje mi się, że obecnie lepiej jest jednak używać znacznie nowszego rozszerzenia Start Faster.

Podsumowanie

Firefox to moim zdaniem świetna przeglądarka, którą mogę dostosować dzięki rozszerzeniem do swoich potrzeb i przez co naprawdę nie mogę się z nią rozstać, pomimo iż wielokrotnie próbowałem alternatyw. Szybkość działania póki co nie jest jego atutem, ale być może któryś z powyższych akapitów zwiększy wasz komfort pracy z tą aplikacją. W moim wypadku kilka minut dodatkowej „zabawy” zaowocowało niesamowitą poprawą sytuacji. Szkoda, że większość z nich dotyczy wersji pod Windowsa, lecz jestem użytkownikiem tego właśnie systemu i nie chcę pisać o czymś, o czym nie mam pojęcia – jeżeli znacie jakieś porady dotyczące wersji dla innych systemów operacyjnych, podzielcie się nimi.

Łamanie linii w znaczniku [PHP] w MyBB

No i znowu piszę o MyBB, jak widać, coś ostatnio natchnęło mnie na rozgrzebanie kilku rzeczy w tym skrypcie. Jedną z nich jest automatyczne łamanie linii np. w cytatach. Właśnie gdy używamy znaczników bbcode/mycode “quote” lub też “code” i wewnątrz nich umieścimy obszerne linijki, zostaną one automatycznie złamane i tekst nie “rozwali” nam posta, nie będzie również tworzył scroolbara w poziomie. Niestety to samo nie dotyczy już znacznika do umieszczania i kolorowania kodu php, który został zawarty w MyBB. Swoją drogą, ciekawe po co w ogóle wyposażyli skrypt forum dyskusyjnego standardowo w coś takiego, na większości for będzie to zupełnie nieprzydatne…

Dobra, mniejsza z tym, przejdźmy do analizy problemu i rozwiązania. Po rzuceniu okiem na klasę zajmującą się parsowaniem wiadomości możemy zobaczyć, że za kolorowanie i “problem” odpowiada wbudowana w PHP funkcja highlight_string odpowiedzialna jak sama nazwa mówi właśnie za kolorowanie tego kodu. Ma ona to do siebie, że wszelkie spacje, odstępy itp. zostają zamienione na spacje twarde, niełamliwe czyli “ ”. Da się to jednak przeskoczyć poprzez dodanie funkcji, która będzie zamieniała takie pojedyncze betonowe mury na zwykłe odstępy. Edytujemy więc plik inc/class_parser.php, odnajdujemy na samym końcu fragment:

}
?>

i dodajemy przed nim:

private static function deleteNbsp($text)
{
  return (strlen($text[0]) < 7) ? ' ' : $text[0];
}

następnie odszukujemy fragment (ok. linii 826):

// Send back the code all nice and pretty

i dodajemy przed nim taki fragment:

$code = preg_replace_callback('#(&amp;nbsp;)+#', 'postParser::deleteNbsp', $code);

I to już wszystko, zapisujemy plik i umieszczamy na serwerze. Od tej chwili kod zawarty w znacznikach php również będzie łamany, przez co unikniemy bloków z ogromnymi rozmiarami oraz przewijania w poziomie. Oczywiście ma to pewną wadę: takie złamanie linii wiąże się w niektórych wypadkach z utratą oryginalnego formatowania tzn. coś, co było w jednej linii, może nam zjechać i utworzyć niższą. Rzecz jasna nie będzie to powodowało nieprawidłowego działania, bowiem występuje gdy utworzenie spacji lub łamania linii jest możliwe i dozwolone.

Subskrypcja MSDN AA, a rozdawanie licencji

Na forum SafeGroup pojawiła się ostatnio osoba, która za różne “przysługi” rozdawała innym osobom klucze licencyjne do różnego typu oprogramowania, w tym również do produktów firmy Microsoft. Wydało mi się to niezbyt legalne – raz, że przecież nawet pożyczanie nośnika z ich aplikacjami (nawet bez klucza) nie jest legalne, no chyba, że osoba której pożyczamy również ma ważną licencję, ale np. jej nośnik uległ zniszczeniu; dwa, że przecież wszystkie te licencje, zarówno na systemy Windows, pakiety Office i wszelkie inne narzędzia są przypisane chyba do danego konta studenta. Continue reading “Subskrypcja MSDN AA, a rozdawanie licencji”

Recenzja Acer Aspire 5741G

Od dłuższego czasu zaczęły się pojawiać problemy z notebookiem, ale nie moim, lecz mojej siostry. Używała ona NTT Corrino 696SR – dosyć okazyjnie kupiony, wyposażony w kartę GeForce 8600 GS, która bardzo się przydawała, ponieważ od czasu do czasu siostra jednak jakieś gry uruchamia (a przynajmniej tak było przy zakupie). Właśnie ta karta chyba zawiniła, ponieważ laptop albo się zawieszał, albo w ogóle nie działał, albo nie pokazywał obrazu. Dużo czasu poświęciłem na diagnozę i dodatkowym bublem okazały się sterowniki do karty wifi, no ale ostatnie problemy praktycznie uniemożliwiły używanie sprzętu – znane już i nagłośnione problemy z BGA. Zdecydowaliśmy się więc na zakup nowego, oczywiście czegoś w granicach rozsądku.
Continue reading “Recenzja Acer Aspire 5741G”

MySQL i sortowanie z polskimi znakami

Dzisiaj podczas wysyłania próśb do autorów zaprzyjaźnionych blogów dotyczących zmiany anchora mojego linku natrafiłem (a raczej natrafiliśmy razem z Marcinem Łuniewskim) na problem natury technicznej. Otóż okazało się, że WordPress tak pięknie obecnie wspierający UTF8 i domyślnie korzystający z takiego właśnie kodowania znaków, nie sortuje wcale umieszczonych linków alfabetycznie, choć o takim sposobie nas informuje. Linki zawierające na początku polskie znaki zostają umieszczone na samym końcu, co też oznacza, że “wyrzuca” je poza znany mu alfabet. Skoro wszystko jest kodowane w UTF8 to sprawa wydawała się bardzo dziwna, dopóki nie przyjrzałem się strukturze tabeli oraz samej bazy WP – domyślna metoda porównywania napisów to utf8_general_ci, a niestety okazuje się, że general wcale nie oznacza wszystkie, a poza tym właśnie w collocation zawarte są dane dotyczące alfabetu używanego do sortowania. Zgodnie z przewidywaniami, zmiana metody chociażby na tylko jednym polu od nazwy na utf8_polish_ci problem zupełnie rozwiązała. Dobrze będzie wiedzieć na przyszłość, ponieważ takie sortowania wykonuje się jednak dosyć często, a dane na polskich stronach mogą przecież zawierać nasze znaki narodowe.