Kezdőlap › Fórumok › Vegyes felvágott › Programfordítások, optimalizáció
- This topic has 126 hozzászólás, 9 résztvevő, and was last updated 18 years, 1 months telt el by
gabaman.
-
SzerzőBejegyzés
-
2007-06-16-09:57 #2118638mmp wrote:„mintha”
optimalizálás során minden olyan optimalizálási eljárást kihagy, ami a méret növekedéséhez vezetne. Ezért lesz lassabb, mert azokat is kihagyja amivel a kód gyorsabban – az adott processzor tulajdonságait kihasználva – végez.Attól függ. Én akkor is fenntartom azon véleményemet, hogy egy Os lehet gyorsabb. És ez szerintem nem csak a procitól függ, hanem a rendszeredtől, valamint a progitól IS!
Az lehet, hogy az O2 általában gyorsabb (és általában nagyobb) kódot eredményez, mint mondjuk az Os, de vannak kivételek!Kicsit extrém példa, de azok a legjobbak: vannak egy-két floppis disztrók. Tehát floppiról boot-olsz. Namármost itt nem mindegy, hogy 300k-t vagy 500k-t kell beolvasnod.
És ezért nem teljesen helytálló vizsla állítása, hogy csak egyszer indítod el monjduk a gimp-et és utána fontos a gyorsaság. Ui. ha pl. csak arra használod, mint én (képet nyitok meg, kivágok, vágólap, stb., tehát semmi „komolyabb”), akkor az O2 és az Os közötti sebességkülönbséget nem érzékeled pl. a gépemen (cel2ghz). Tehát nekem az a fontos, hogy gyorsan betöltődjön (persze aki mittomén mit csinál vele, annak lehet, hogy a másik rész a fontos)./Hangsúlyozom, ez csak egy példa, és nyilván a többség a „komolyabb” dolgokra használja./
2007-06-16-09:57 #2118639mmp wrote:„mintha”
optimalizálás során minden olyan optimalizálási eljárást kihagy, ami a méret növekedéséhez vezetne. Ezért lesz lassabb, mert azokat is kihagyja amivel a kód gyorsabban – az adott processzor tulajdonságait kihasználva – végez.Attól függ. Én akkor is fenntartom azon véleményemet, hogy egy Os lehet gyorsabb. És ez szerintem nem csak a procitól függ, hanem a rendszeredtől, valamint a progitól IS!
Az lehet, hogy az O2 általában gyorsabb (és általában nagyobb) kódot eredményez, mint mondjuk az Os, de vannak kivételek!Kicsit extrém példa, de azok a legjobbak: vannak egy-két floppis disztrók. Tehát floppiról boot-olsz. Namármost itt nem mindegy, hogy 300k-t vagy 500k-t kell beolvasnod.
És ezért nem teljesen helytálló vizsla állítása, hogy csak egyszer indítod el monjduk a gimp-et és utána fontos a gyorsaság. Ui. ha pl. csak arra használod, mint én (képet nyitok meg, kivágok, vágólap, stb., tehát semmi „komolyabb”), akkor az O2 és az Os közötti sebességkülönbséget nem érzékeled pl. a gépemen (cel2ghz). Tehát nekem az a fontos, hogy gyorsan betöltődjön (persze aki mittomén mit csinál vele, annak lehet, hogy a másik rész a fontos)./Hangsúlyozom, ez csak egy példa, és nyilván a többség a „komolyabb” dolgokra használja./
2007-06-16-10:06 #2118640Nekem is 2GHz-es cerka van az egyik gépben, ami tuti, hogy pentium4 march.
Most összezavarodtam. -Os vs -O2? És ha a Gabaman által írt optimalizációt bekapcsolom, akkor is kimarad az -Os miatt?
Tehát, most ilyen:
CFLAGS=”-Os -march=prescott -fomit-frame-pointer -pipe”
Ha ilyen lesz, akkor az -ftree-vect-loop-version érvényesül?
CFLAGS=”-Os -march=prescott -fomit-frame-pointer -ftree-vect-loop-version -pipe”
illetve GCC man-t nézegetve érdemes lenne hozzáadni az -frename-registers opciót is. Vélemények?Illetve olvastam egy másik módszerről. Nem -O-t használnak, hanem valami kombinációt, ami gyorsabb, mint bármelyik -O. Hallott erről valaki valamit?
2007-06-16-10:06 #2118641Nekem is 2GHz-es cerka van az egyik gépben, ami tuti, hogy pentium4 march.
Most összezavarodtam. -Os vs -O2? És ha a Gabaman által írt optimalizációt bekapcsolom, akkor is kimarad az -Os miatt?
Tehát, most ilyen:
CFLAGS=”-Os -march=prescott -fomit-frame-pointer -pipe”
Ha ilyen lesz, akkor az -ftree-vect-loop-version érvényesül?
CFLAGS=”-Os -march=prescott -fomit-frame-pointer -ftree-vect-loop-version -pipe”
illetve GCC man-t nézegetve érdemes lenne hozzáadni az -frename-registers opciót is. Vélemények?Illetve olvastam egy másik módszerről. Nem -O-t használnak, hanem valami kombinációt, ami gyorsabb, mint bármelyik -O. Hallott erről valaki valamit?
2007-06-16-10:14 #2118642„Kicsit extrém példa…”
Valóban az, csak nem kicsit. Már csak azért is, mert ilyen mérvű kód méret változást nem lehet elérni.„Ui. ha pl. csak arra használod, mint én (képet nyitok meg, kivágok, vágólap, stb., tehát semmi „komolyabb”), akkor az O2 és az Os közötti sebességkülönbséget nem érzékeled”
Más kérdés, hogy te mit érzékelsz, más kérdés, hogy mi hoz %-ban nagyobb eredményt.
Az -os a megspórolt 10 bytejával valóban eltörpül a megabyte-os képek mellett, viszont egy -o2/o3 100, vagy 95 órajel ciklus különbsége (ilyen semmi komoly műveleteknél), már számottevő… noha te sz égvilágon semmit nem fogsz észrevenni belőle.2007-06-16-10:14 #2118643„Kicsit extrém példa…”
Valóban az, csak nem kicsit. Már csak azért is, mert ilyen mérvű kód méret változást nem lehet elérni.„Ui. ha pl. csak arra használod, mint én (képet nyitok meg, kivágok, vágólap, stb., tehát semmi „komolyabb”), akkor az O2 és az Os közötti sebességkülönbséget nem érzékeled”
Más kérdés, hogy te mit érzékelsz, más kérdés, hogy mi hoz %-ban nagyobb eredményt.
Az -os a megspórolt 10 bytejával valóban eltörpül a megabyte-os képek mellett, viszont egy -o2/o3 100, vagy 95 órajel ciklus különbsége (ilyen semmi komoly műveleteknél), már számottevő… noha te sz égvilágon semmit nem fogsz észrevenni belőle.2007-06-16-10:20 #2118644„az -ftree-vect-loop-version érvényesül?”
Nem.Sőt a kód méretének csökkentése valószínűleg letiltja az előre betöltéseket (talán ki lehet kényszeríteni, de akkor hova a méret optimalizáció), amely viszont lassítani fogja a kódot.
2007-06-16-10:20 #2118645„az -ftree-vect-loop-version érvényesül?”
Nem.Sőt a kód méretének csökkentése valószínűleg letiltja az előre betöltéseket (talán ki lehet kényszeríteni, de akkor hova a méret optimalizáció), amely viszont lassítani fogja a kódot.
2007-06-16-10:25 #2118646Uzsolt: akkor forgasd így: -march=pentium4 -pipe -Os -fomit-frame-pointer
O2-ből ezeket kihagyva lesz Os: -falign-functions -falign-jumps -falign-loops -falign-labels -freorder-blocks -fprefetch-loop-arrays2007-06-16-10:25 #2118647Uzsolt: akkor forgasd így: -march=pentium4 -pipe -Os -fomit-frame-pointer
O2-ből ezeket kihagyva lesz Os: -falign-functions -falign-jumps -falign-loops -falign-labels -freorder-blocks -fprefetch-loop-arrays -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz