Kezdőlap › Fórumok › Programozás › Programok optimalizált fordítása forrásból
- This topic has 9 hozzászólás, 5 résztvevő, and was last updated 20 years, 6 months telt el by
admin.
-
SzerzőBejegyzés
-
2005-01-07-15:53 #1995772
– A kevésbé fontos:
a suse ftp site-járól letöltöttem a 7.4.6 forrás RPM-jét és ennek a SPEC fájla segítségével megpróbáltam lefordítani. Itt mindjárt egy hibát dobott: com_err szükséges a kerberos 5-höz. Telepítsem fel a megfelelõ lib-et. Na jó, de melyiket?
Mivel egyenlõre nem használok krb5-öt így ezt kivettem a spec fájlból, és így elkészítettem a i686-os rpm-eket. De hátha a késõbbiekben szükség lehet rá, így nem tudja valaki milyen lib fájlt kell feltelepíteni?Ez közben meg is oldódott….
2005-01-07-19:47 #1995773flagek: -O2 az a tuti, az -O3 már kockázatos;
-march=processzortipus -mcpu=processzortipus -fomit-frame-pointer (felgyorsít, de lehetetlenné teszi a debuggolást), stb…2005-01-07-20:55 #1995774flagek: -O2 az a tuti, az -O3 már kockázatos;
-march=processzortipus -mcpu=processzortipus -fomit-frame-pointer (felgyorsít, de lehetetlenné teszi a debuggolást), stb…
[align=right][snapback]109617[/snapback][/align]itt egy teljes lista: http://www.config.hu/content.php?article.22
ez egy gentoo make.conf. Ollózd ki belõle a fordítási opciókat! Ha esetleg „külsõleg” nem oldható meg a dolog, picit haxold meg a Makefile-t!
xcut: hááát igen…. pedig emléxem én még azokra az idõkre, mikor mindent -O6 -al fordítottál 😀 hiába mondtam, h ne csináld…. 😉
kl223
2005-01-08-07:59 #1995775Ok. Betettem a spec fájl ‘configure’ rész végéhez:
CFLAGS=”-march=pentium4 -O3 -pipe -fomit-frame-pointer -fforce-addr -falign-functions=4 -fprefetch-loop-arrays”Az rpmbuildert pedig így hívom meg:
rpmbuild -bb –target=i686-pc-linux-gnu postgresql.specMérek néhány sebességet, majd írogatok még. 😉
2005-01-08-11:03 #1995776Ok. Betettem a spec fájl ‘configure’ rész végéhez:
CFLAGS=”-march=pentium4 -O3 -pipe -fomit-frame-pointer -fforce-addr -falign-functions=4 -fprefetch-loop-arrays”Az rpmbuildert pedig így hívom meg:
rpmbuild -bb –target=i686-pc-linux-gnu postgresql.specMérek néhány sebességet, majd írogatok még. 😉
[align=right][snapback]109689[/snapback][/align]kíváncsian várom!
kl223
2005-01-08-11:52 #1995777kíváncsian várom!
kl223
[align=right][snapback]109747[/snapback][/align]Sajna nem lettek jobb eredmények, sõt!!! 🙁
A pg_autotune segítségével mértem:
– Eredeti SUSE i586-os rpm-ek: 622-624 tps
– i686, „–disable-static” és „disable-debug” 626-627 tps -ez jobb
– Az elõzõ paraméterek + CFLAGS=”-march=pentium4 -O3 -pipe -fomit-frame-pointer -fforce-addr -falign-functions=4 -fprefetch-loop-arrays” 601-602 tps- ez rosszabb 🙁2005-01-08-12:45 #1995778Sajna nem lettek jobb eredmények, sõt!!! 🙁
A pg_autotune segítségével mértem:
– Eredeti SUSE i586-os rpm-ek: 622-624 tps
– i686, „–disable-static” és „disable-debug” 626-627 tps -ez jobb
– Az elõzõ paraméterek + CFLAGS=”-march=pentium4 -O3 -pipe -fomit-frame-pointer -fforce-addr -falign-functions=4 -fprefetch-loop-arrays” 601-602 tps- ez rosszabb 🙁
[align=right][snapback]109765[/snapback][/align]próbálj játszani az optimalizálással: próbáld -O2-vel, vagy -Os-el!
kl223
2005-01-08-13:04 #1995779Luti:
„Sajna nem lettek jobb eredmények, sõt!!!A pg_autotune segítségével mértem:
– Eredeti SUSE i586-os rpm-ek: 622-624 tps
– i686, „–disable-static” és „disable-debug” 626-627 tps -ez jobb
– Az elõzõ paraméterek + CFLAGS=”-march=pentium4 -O3 -pipe -fomit-frame-pointer -fforce-addr -falign-functions=4 -fprefetch-loop-arrays” 601-602 tps- ez rosszabb”annyira nem kell csodalkozi, jo 10 eve a „mindent 20adara [tomoritsunk]” volt a divat, ma a „mindent 20szoroasara [gyorsitsunk]”; kerdes, hogy az valosagban ezek mennyit ernek;
nemreg a gwnben ( http://www.gentoo.org/news/en/gwn/20041229-newsletter.xml ) volt a tulzasba vett forditaskori optimalizalasrol egy cikk: http://forums.gentoo.org/viewtopic.php?t=2710842005-01-09-09:05 #1995780annyira nem kell csodalkozi, jo 10 eve a „mindent 20adara [tomoritsunk]” volt a divat, ma a „mindent 20szoroasara [gyorsitsunk]”; kerdes, hogy az valosagban ezek mennyit ernek;
Ez úgy tûnik igaz, hogy nem túl sokat érnek. Mivel minden egyes pg_autotune futtatás kb. 1,5 óra volt így más módszerhez kellett folyamodnom.
Minden újrafordítás / installálás után lefuttattam egy lekérdezést 2x egymás után, és mértem az idejét.
Azért futtattam 2x, hogy a lemezelérés/cachelés a lehetõ legkevesebbet zavarjon be.A futtatókörnyezet egy vállalati laptop (IBM T41) Centrino processzorral (1500MHz). Hálózatról üzemeltetve és maxon járatva.
Tapasztalatok:
– Az eredeti kód elég gyorsan lefutott (109 ms).– Amikor P2-nél nagyobbra optimalizáltam a kódot, akkor kb. 20-40%-os sebességcsökkenést sikerült elérnem!! (kb. 135-150 ms)
– Végül is a i686, ./configure –disable-debug, gcc -O2 lett a nyerõ (108 ms), 1% alatti sebességnövekedésért inkább nem kockáztatom az adatbázisszerverem stabilitását.
2009-12-04-19:56 #1877875Szeretném ha a forrásból fordított programok minnél „jobbak” lennének.
Nézegettem a Yopert, és úgy látom, hogy itt i686-ra fordították a binárisokat, valamint a „–disable-static” és „disable-debug” opciókat használták.
PostgreSQL-t fordítok éppen SLES9 alatt és szeretném, ha minél gyorsabban futna (persze tuningolom a postgresql.conf-ot is 😉 ).
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz