Hitrost in RAM
Jernej Simončič
jernej.simoncic na guest.arnes.si
Sre Apr 7 10:33:29 CEST 2004
On Wednesday, April 7, 2004, 10:12:33, Andraz Tori wrote:
> če imaš program v izvorni kodi in je veliko kode (da že sam zaseda
> pomnilnika velik), se ti morda splača prevesti s switchom -Os (in ne -O2
> ali neka taka neumnost, ki je enkrat pisala v Monitorju... števke so za
> količino optimizacij, s je pa za code size)
> če ti pa ne gre za hitrost pa prevedeš z -O2 (oziroma lahko probaš 3 ali
> več, ki ni dokumentiran, lahko pa da so gccjevci mu že kaj pripisali)
Glede -Os in -O2 se splača poizkusit oboje, ker odvisno od programa, včasih
deluje eden hitreje, včasih drugi (-Os uporabi optimizacije, ki kar najbolj
zmanjšajo velikost končnega prevedenega programa; -O, -O2 in -O3 uporabijo
optimizacije, ki naj bi pospešile izvajanje; -O3 dostikrat doseže nasproten
učinek, in vedno zelo podaljša čas prevajanja; vse nad -O3 je za gcc enako
kot -O3). Če ima program kakšne self-teste, jih je dobro zagnati po
prevajanju z optimizacijami, ker se včasih kakšna stvar pokvari.
Malenkost pospešitve doda tudi -fomit-frame-pointer.
> potem pa se lahko igraš še z nekaterimi drugimi optimizacijami, recimo
> če imaš SSE arhitekturo lahko poskusiš z "-mfpmath sse,387"
Ko smo že pri "nevarnih" optimizacijah, -ftracer v kombinaciji z -O
dostikrat pospeši stvari.
> potem če se v matematičnih funkcijah ravno ne zanašaš na detajle ieee
> specifikacije za floating point.... lahko vklopiš -ffast-math
-ffast-math bo neposredno uporabljal CPU za floating point, namesto gcc-jeve
vgrajene emulacije.
--
begin .sig
< Jernej Simoncic >< http://deepthought.ena.si/ >
When all else fails, follow instructions.
-- Allen's Axiom
end
Dodatne informacije o seznamu lugos-list