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