Firefox / speedup, defrag sqlite

http://www.oskaan.com/vacuum-your-firefox-databases-for-better-performa…


# ha nincs telepítve sqlite3
sudo apt install sqlite3

cd ~/.mozilla
find -iname "*.sqlite" | while read FF; do sqlite3 "$FF" VACUUM; done

Kisebb db méretek lesznek gyorsabb indulással és működéssel. Windows-on is lehet.

Hozzászólások

Nem lenne jobb a while read rész helyett egyszerűen a find -exec opcióját használni?

find ~/.mozilla -iname \*.sqlite -exec sqlite3 {} VACUUM \;

Meg persze így a cd ~/.mozilla se kell :)

Jé, ez még mindig kell? Egyszer, évekkel ezelőtt volt olyan (dez)információ, hogy már belefaragták a Firefoxba. Már akkor sem nagyon hittem el, így a mai napig van egy ilyen az autostart scriptemben:

if ! pgrep -u "$USER" -x firefox >/dev/null; then
    pdat=`echo "$HOME"/.mozilla/firefox/*.default/pluginreg.dat`
    [ -f "$pdat" ] && mv -f "$pdat" "${pdat}.bak"
    for i in $HOME/.mozilla/firefox/*/*.sqlite; do
        [ -f "$i" ] && sqlite3 "$i" 'VACUUM;'
    done
fi
if ! pgrep -u "$USER" -x thunderbird >/dev/null; then
    for i in $HOME/.thunderbird/*/*.sqlite; do
        [ -f "$i" ] && sqlite3 "$i" 'VACUUM;'
    done
fi

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Sajnos nem találok dátumot a blog oldalán. Nem tudom miért nem tesz ki. A weboldal forrásban 2017 márciusi infót látok a vacuum-hoz kapcsolódóan, tehát valszeg relative friss, fél éves a cikk. Nekem egyébként százalékban sokat nyomott rajt, 55 MB-ról 35-re. És a böngésző indulás is gyorsabbnak tűnik érzésre.

Az nem világos, ezt miért nem teszi meg a Firefox induláskor. Nyilván menet közben nem, akkor épp lassítana, olyankor csak bejegyzésre kerül egy-egy rekordról, hogy érvénytelen, de induláskor kitakaríthatná az adatbázisból a felesleges szemetet.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Vagy leállításkor.

Jó enne egy olyan oprendszer feature, amely tanulná hogy mikor van a rendszer üresjáratának legnagyobb időablaka legnagyobb eséllyel naponta vagy hetente, és ezen eseményre be tudnának regisztrálni alkalmazások karbantartások elvégzésére. Mobil OS lehet már tudja.

Ezt nagyon jó ötletnek tartom! :) Az a vicces, a tanuló démon megírását nem is tartom olyan rettentő nehéznek, inkább az a rész kellene, hogy ez egy szabványos freedesktop felület legyen, s az alkalmazások írói rákapjanak az ízére.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Nem rakom át, már csak azért sem, mert a firefox szerintem jobb, ha nem fut közben - bár nem tudom -, az pedig a belépéskor bizonyosan így van. Amúgy a vacuum nem tart sokáig, ha nincs sok szemét, azaz rendszeres a dolog.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

EZ is igaz, az esély meg van. Akkor kilépésnél lenne jó egy ilyen algo:

if (rand < 0.01) { lock files; clean; unlock files }

A random limit értéket pedig adaptívan állítgathatná méréssel (többszörivel persze és akkor mikor a rendszer terheltsége kicsi ezen processzen kívül) és tanulná, hogy pl. mennyi sebességet nyernek bizonyos funkciók a működés során ill. induláskor, és egy treshhold idő érték felett mindig kisebbre venné a sűrűbb karbantartáshoz, pl úgy hogy a sebesség növekedés mértékéhez állítja a random értéket 0.1 és 0.001 között egy visszacsatolással. Az állítás léptéke pedig logaritmikus lenne. Így gyorsan optimálissá válna.

Vagy random helyett lehetne eltelt időhöz kötni, hogy mikor végez karbantartást. Futás közben is elvégezhetné.

Egyszerű picike C vagy bármilyen nyelven meg lehetne írni. Kíváncsi lennék hogy Mozilla befogadna-e ilyen patch-et. Az auto top list algo-mra speciel nem reagáltak semmit, pedig nagyban hozzájárulna a felhasználói élményhez szerintem.

Ami engem illet, ha én kilépek valamiből, akkor azt akarom, hogy az lépjen ki, de azonnal, és semmi szín alatt ne álljon neki még vakarászni 5-8 másodpercig (nálam kb 5 másodpercig tart a takarítás akkor is, ha semmi változás sincs). Lásd Windows frissítések kilépéskori telepítése, még ha ez azért sokkal gyorsabb ahhoz képest.

szerk.: egyébként meg tökmindegy, már túl késő ahhoz, hogy FF56-ba bármi ilyesmi bekerülhessen, utána meg úgyis használhatatlan szar lesz az egész :)

Érdekes módon nekem nem frissíti az about:support oldalon a "storage.vacuum.last.places.sqlite" bejegyzés timestamp-jét miután kézzel rányomok a "Verify integrity" gombra. Böngésző újraindítás után sem. Lehet hogy az automatikus karbantartás idejét mutatja csak, a manuálisét nem.

cd ~/.thunderbird/ és itt is mehet ugyanez.

Wow. Erezhetoen faragott a FF indulasi idejen a places.sqlite kipucolasa.