Uutisarkisto
GCC 4.3.2 -säätöä - 02.04.2009 12.15.50
Kuten ehkä joku tietääkin, GCC 4.3.2 on nyt Gentoon vakaassa haarassa (amd64). Vaikka kaikkien pakettien kääntämiseen meni noin 10 tuntia aikaa, niin tulipahan kerrankin siivottua world-tiedostoa ja poistettua turhia ohjelmia.
Pyrin aina optimoimaan optipng-ohjelmalla kaikki png-tiedostoni, ja tämä on skriptattunakin suhteellisen aikaavievä operaatio. Esimerkiksi hieman yli megatavun kuvan optimointiin voi helposti kulua kaksi minuuttia. Kun GCC vielä jauhoi pakettejani, mieleeni juolahti, että voisin testata optipng-ohjelmaan GCC:n hurjempia optimointivipuja. Lopputulos oli yllättävä, tietyt optimoinnit toivat jopa 13 %:n parannuksen suoritusaikaan. Testasin muutamia eri optimointikombinaatioita ja mittasin ajan, joka kuluu optimoitaessa 1,2 MiB:n png-tiedosto. Tässä käytetyt optimointivivut sekä tulokset (prosessori: AMD Athlon 64 X2 5200+):
-march=native -O2 -pipe -msse3
optipng -o5 *.png > /dev/null 114.65s user 0.28s system 99% cpu 1:54.96 total
optipng -o5 *.png > /dev/null 113.76s user 0.27s system 99% cpu 1:54.06 total
optipng -o5 *.png > /dev/null 113.84s user 0.02s system 99% cpu 1:53.89 total
optipng -o5 *.png > /dev/null 113.59s user 0.02s system 99% cpu 1:53.64 total
-march=native -O3 -pipe -ftree-vectorize -funroll-all-loops -mmmx -msse -msse2 -msse3
optipng -o5 *.png > /dev/null 99.37s user 0.03s system 99% cpu 1:39.44 total
optipng -o5 *.png > /dev/null 97.88s user 0.02s system 99% cpu 1:37.91 total
optipng -o5 *.png > /dev/null 97.73s user 0.27s system 99% cpu 1:38.02 total
optipng -o5 *.png > /dev/null 97.85s user 0.02s system 99% cpu 1:37.90 total
-march=native -O3 -pipe -fomit-frame-pointer -ftree-vectorize -funroll-all-loops -mmmx -m3dnow -msse -msse2 -msse3
optipng -o5 *.png > /dev/null 98.75s user 0.25s system 99% cpu 1:39.08 total
optipng -o5 *.png > /dev/null 97.71s user 0.23s system 99% cpu 1:37.96 total
optipng -o5 *.png > /dev/null 97.98s user 0.02s system 99% cpu 1:38.05 total
optipng -o5 *.png > /dev/null 97.70s user 0.23s system 99% cpu 1:37.95 total
-march=native -O3 -pipe -fomit-frame-pointer -ftree-vectorize -mmmx -m3dnow -msse -msse2 -msse3
optipng -o5 *.png > /dev/null 103.42s user 0.29s system 99% cpu 1:43.80 total
optipng -o5 *.png > /dev/null 102.50s user 0.03s system 99% cpu 1:42.59 total
optipng -o5 *.png > /dev/null 102.28s user 0.02s system 99% cpu 1:42.32 total
optipng -o5 *.png > /dev/null 102.50s user 0.25s system 99% cpu 1:42.80 total
-march=native -O3 -pipe -fomit-frame-pointer -ftree-vectorize -ffast-math -mmmx -m3dnow -msse -msse2 -msse3
optipng -o5 *.png > /dev/null 103.42s user 0.03s system 99% cpu 1:43.47 total
optipng -o5 *.png > /dev/null 102.47s user 0.02s system 99% cpu 1:42.52 total
-march=native -O3 -pipe -fomit-frame-pointer -ftree-vectorize -funroll-all-loops -ffast-math -mmmx -m3dnow -msse -msse2 -msse3
optipng -o5 *.png > /dev/null 98.47s user 0.04s system 99% cpu 1:38.54 total
optipng -o5 *.png > /dev/null 98.05s user 0.02s system 99% cpu 1:38.08 total
optipng -o5 *.png > /dev/null 97.87s user 0.02s system 99% cpu 1:37.91 total
optipng -o5 *.png > /dev/null 98.04s user 0.02s system 99% cpu 1:38.14 total
-march=native -O3 -pipe -fomit-frame-pointer -ftree-vectorize -funroll-all-loops -fno-strict-aliasing -mmmx -m3dnow -msse -msse2 -msse3
optipng -o5 *.png > /dev/null 99.50s user 0.03s system 99% cpu 1:39.55 total
optipng -o5 *.png > /dev/null 98.50s user 0.02s system 99% cpu 1:38.54
total
Kuten yo. tiedoista näkyy, niin mikäli joutuu optimoimaan paljon suurikokoisia kuvia, on parannus jo merkittävä. Seuraavaksi voisi yrittää profiloida optipng-ohjelmaa GCC:n -fprofile-*-vivuilla. Tästäkin minulla on hyviä kokemuksia, esimerkiksi bsnes nopeutuu profiloinnin avulla noin 12%. Toki tämä riippuu todella paljon ohjelmatyypistä.
HP-Svorak ja Ergodox EZ - 26.01.2020 18.27.23
Mustekynistä - 23.03.2018 22.58.38
Iranin kuvat - 06.05.2015 16.52.28
Epica - 28.04.2015 19.33.32
Julkaisut - 20.10.2012 15.36.20
Resyncing Faulty Mdadm Raid Array - 16.04.2012 20.50.36
HP-Svorak - 17.02.2012 18.06.56
Kuusi luonnehdintaa Sturmin sanoille - 10.12.2011 20.38.14
Snes-arkistointia - 28.09.2011 18.17.04
Uusi kirjoitelma ja muita muutoksia - 25.08.2011 13.38.35
Kirjoitelma launchdista - 04.07.2011 23.55.51
Luks-laitteiden käyttö Mac Os X:ssä - 27.10.2010 21.40.02
Creative Commons -lisenssi - 04.10.2010 19.10.10
Tilastot palautettu - 02.10.2010 14.52.32
Luk-tutkielma - 22.09.2010 22.27.46
Kuvia Ruisrockista - 19.07.2010 02.22.10
Uutta sisältöä - 30.05.2010 22.32.24
Taas sitä mennään... - 27.05.2010 22.50.14
Tilastoskriptien päivitys - 18.03.2010 23.41.16
Matematiikan aine - 14.09.2009 16.05.23
GCC 4.3.2 -säätöä - 02.04.2009 12.15.50
Uusi ulkoasu - 02.04.2009 11.53.55
FLAC - 30.12.2008 19.04.52
Sivusto taas kunnossa - 28.05.2008 17.53.07