Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Optimalizacia SQLite databaz vo Firefox profile  (Přečteno 4256 krát)

wam]Spider007

  • Host
Optimalizacia SQLite databaz vo Firefox profile
« kdy: 12 Července 2009, 14:21:49 »
Na portali DSL.sk vysiel velmi slusny clanok, ktory pojdenava o rychlosti Firefoxu.
Citujem:

Citace
U prehliadaču Firefox zároveň od verzie 3.0 prichádza k postupnému spomaľovaniu prehliadača pri používaní toho istého profilu, ktoré sa začína u užívateľov intenzívne používajúcich prehliadač prejavovať práve v týchto mesiacoch, viac ako rok po vydaní Firefoxu 3.0.

Dôvodom postupného spomaľovania je nedefragmentovanie súborov databázy SQLite používanej Firefoxom 3.0+ na uchovávanie histórie navštívených stránok, bookmarkov, cookies a ďalších informácií.

Po prekročení nastavenej maximálnej doby uchovávania navštívených stránok v histórii, ktorá je od Firefoxu 3.0 nastavená štandardne až na 180 dní, začne Firefox položky z histórie mazať. V databáze tým vznikajú prázdne databázou iba príležitostne zapĺňané stránky, čo vedie k nepotrebnému zväčšovaniu súboru databázy a k vyššej fragmentácii dát.

Oba tieto javy prispievajú k spomalenie prístupu napríklad k histórii a bookmarkom, ku ktorým Firefox pristupuje od verzie 3.0 pri každom vpisovaní údajov do políčka s adresou a zároveň pri štarte.

Vzhľadom na mazanie stránok z histórie po 180 dňoch v súčasnosti približne rok po vydaní Firefoxu 3.0 môže databáza places.sqlite obsahujúca históriu zaberať až takmer dvojnásobok miesta oproti miestu potrebnému pre uloženie platných dát v databáze. U užívateľov využívajúcich prehliadač intenzívne sa veľkosť places.sqlite po roku používania môže pohybovať v rádoch viacerých desiatok megabajtov a neefektívnosť jej štruktúry môže citiľne spomaľovať prehliadač.

Cize by sa dalo povedat, ze sa jedna o podobnu vec ako pri fragmentacii diskov. Nastastie staci par prikazov, o ktorych pojednava aj clanok. Uplne presny postup pre menej skusenych tam vsak trochu chyba. Postup som hodil aj do komentarov v clanku, ale tu to bude aspon na ociach :).

po nainstalovani sqlite3
Kód: [Vybrat]
sudo apt-get install sqlite3
vlezieme do zlozky s firefox profilom a pouzijeme prikaz:
Kód: [Vybrat]
sqlite3 nazov_suboru VACUUM
tento prikaz je mozne pouzit na vsetky zlozky *.sqlite v profile.

potom uz staci len restart OS.
« Poslední změna: 12 Července 2009, 14:47:59 od wam]Spider007 »

dog.big

  • Aktivní člen
  • *
  • Příspěvků: 216
  • inactive :/
Re: Optimalizacia SQLite databaz vo Firefox profile
« Odpověď #1 kdy: 12 Července 2009, 22:09:37 »
testuji již delší dobu.. bez problému a je to znát ;)
doporučuji!
Momentálně Linux INACTIVE.. problém s IGP
My powerful PC :D: Laptop Toshiba L40-14D, CPU: Intel Celeron 1,73Ghz, Chipset: Intel GL960, RAM: 3GB dual ch., VGA: Intel x3100, HDD: 120GB Toshiba, Snd: Realtek HD

dog.big

  • Aktivní člen
  • *
  • Příspěvků: 216
  • inactive :/
Re: Optimalizacia SQLite databaz vo Firefox profile
« Odpověď #2 kdy: 13 Července 2009, 04:07:47 »
Takže jsem udělal skriptík umožnující optimalizaci pro FF verze 2 až 3.5 + všech profilů FF, dále dokáže zkontrolovat potřebnou knihovnu sqlite3 a případně spustit atp-get.. Skript stačí při mírném surfování pouštět 1x do měsíce
Upozornění: před spuštěním samotného skriptu firefox_optimize je nutné ukončit Firefox, jinak se skript zastaví, nic neudělá a ukončí se (ochrana před poškozením dat)

Jednoduchý postup v terminálu včetně spuštění a následné optimalizace (skript se stáhne a nastaví):
Kód: [Vybrat]
cd ~
wget http://dogbig.ezin.cz/linux/firefox_optimize
chmod +x firefox_optimize
./firefox_optimize


Samotný skript pro pokročilé :):
Kód: [Vybrat]
#!/bin/bash
echo "*** Optimalizační skript pro Firefox spuštěn ***";
echo ":i: Pro forum.ubuntu.cz zpracoval Michal Charvát (dog.big)";
echo ":i: Základ skriptu převzat z ubuntuforums.org";
username=$(whoami)
proc="$(ps aux | grep $username | grep -v $0 | grep firefox | grep -v grep)"
if [ "$proc" != "" ]
then
        echo -e "\n STOP: Nejdříve je nutné ukončit Firefox! \n"
echo "*** Optimalizační skript pro Firefox ukončen ***";
        exit 1
fi
echo -e "\n Kontrola existence balíčku sqlite3 a jeho umístění.."
if [ -d "/usr/bin/sqlite3/" ]
then
echo " INFO: Balíček nalezen."
else
echo " UPOZORNĚNÍ: Balíček sqlite3 nenalezen na daném umístění."
echo "    Provádím pokus o jeho instalaci (vyžaduje heslo pro sudo)."
sudo apt-get update
sudo apt-get install sqlite3
echo " INFO: Pokus o instalaci balíčku sqlite3 proveden."
fi
curdir=$(pwd)
echo -e "\n Optimalizace profilů Firefoxu verze 2 až 3.0"
for dir in $(cat ~/.mozilla/firefox/profiles.ini | grep Path= | sed -e 's/Path=//')
do
        cd ~/.mozilla/firefox/$dir 2>/dev/null
        if [ $? == 0 ]
        then
                echo " Nacházím se ve složce $(pwd)"
                echo -e "    Optimalizuji..."

                for F in $(find . -type f -name '*.sqlite' -print)
                do
                        sqlite3 $F "VACUUM;"
                done

                echo -e "    Dokončeno v $(pwd) ..."
        else
                echo -e "   UPOZORNĚNÍ: Chyba provádění optimalizace ve složce $dir, přeskakuji."
        fi
done
echo -e "\n Optimalizace profilů Firefoxu verze 3.5.X"
if [ -d "/home/$username/.mozilla/firefox-3.5/" ]
then
for dir in $(cat ~/.mozilla/firefox-3.5/profiles.ini | grep Path= | sed -e 's/Path=//')
do
        cd ~/.mozilla/firefox/$dir 2>/dev/null
        if [ $? == 0 ]
        then
                echo " Nacházím se ve složce $(pwd)"
                echo -e "    Optimalizuji..."

                for F in $(find . -type f -name '*.sqlite' -print)
                do
                        sqlite3 $F "VACUUM;"
                done

                echo -e "    Dokončeno v $(pwd) ..."
        else
                echo -e "    UPOZORNĚNÍ: Chyba provádění optimalizace ve složce $dir, přeskakuji."
        fi
done
else
echo -e " INFO: Firefox 3.5.X není nainstalován, přeskakuji.."
fi
cd $curdir
echo -e "\n INFO: Optimalizace Firefoxu dokončena! \n";
echo "*** Optimalizační skript pro Firefox ukončen ***";


Předem se omlouvám za případné chyby v textech..
Momentálně Linux INACTIVE.. problém s IGP
My powerful PC :D: Laptop Toshiba L40-14D, CPU: Intel Celeron 1,73Ghz, Chipset: Intel GL960, RAM: 3GB dual ch., VGA: Intel x3100, HDD: 120GB Toshiba, Snd: Realtek HD

wam]Spider007

  • Host
Re: Optimalizacia SQLite databaz vo Firefox profile
« Odpověď #3 kdy: 13 Července 2009, 15:45:20 »
ta ochrana na spusteny firefox tam byt ani nemusi, pretoze samotny kod "sqlite db_name VACUUM" ti povie, ze databaza je zamknuta. Odomkne sa len v pripade vypnutia firefoxu.

inak dobra praca...teoreticky by sa to mohlo nastavit, aby sa ten prikaz spustal automaticky pri boote alebo kazdy mesiac pomocou cronu.

Iljusin

  • Aktivní člen
  • *
  • Příspěvků: 347
Re: Optimalizacia SQLite databaz vo Firefox profile
« Odpověď #4 kdy: 13 Července 2009, 16:06:16 »
dog.big: Ještě tam můžeš přidat adresář ~/.songbird2 (a možná ještě nějaké další které mají integrovaný browser FF) :)

petrakis

  • Stálý člen
  • **
  • Příspěvků: 513
Re: Optimalizacia SQLite databaz vo Firefox profile
« Odpověď #5 kdy: 15 Července 2009, 08:23:40 »
Vyborna vec , pro min skusenych pomucka aby to nemuseli stale kopirovat a spoustet pres terminal.

Vytvorime textovej soubor ( napriklad pomocou gedit) tam ten script vlozime, nasledne subor pojmenujeme jako chceme ( zmazeme koncovku txt). Nasledne subor umistnime v home folderi. Tam pravej klik -> properties -> permissions -> zaskrtneme allow executing file as program.


Muze se to zpustit primo z home folderu anebo pres terminal prikazem:  ./jmeno_jakym_ste_to_pojmenovali
Znalosti ⇛ Linux: Pokročilý ┃ Programování: Pokročilý ┃ Angličtina: Pokročilý
Systém: Ubuntu 10.04 32-bit (en_US.utf8)
Specifikace⇛ Intel Core 2 E8400 3.00GHz │ RAM 3072 MiB │ DG31PR INTEL - Intel DG31PR Grafické karty: nVidia NV44 [GeForce 6200 TurboCache(TM)] [10DE:161] Sítě: Ethernet: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller [10EC:8168]

Martin Kiklhorn

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • Závislák
  • ******
  • Příspěvků: 4807
  • グーグル!ご存知ですか?
    • HEJ
Re: Optimalizacia SQLite databaz vo Firefox profile
« Odpověď #6 kdy: 15 Července 2009, 09:08:35 »
perfektní, places ze 150MB na polovinu.
Jsou ve vašem dotazu OPRAVDU VŠECHNY vám dostupné informace o problému?
Linux user since 2007-10-11, Registered #456007
Virtual
| Distribuce
~/slozka znamená /home/"vase jmeno"/slozka
6521 69DE 0F34 FCBC FB1D  DE76 360E 52B2 F71A B8E8

 

Provoz zaštiťuje spolek OpenAlt.