Gimliho web „foggy point” - programování, php, outdoor, o ničem...Skip to main content.

Závod matematických funkcí a operací na 1 000 000 kol

Na disku jsem našel starý dokument, který jsem vytvořil v době, kdy jsem se začínal učit C/C++. Jedná se měření rychlosti různých matematicých úkonů.

Závod matematických funkcí a operací na 1 000 000 kol:

Legenda
a - výsledek (na začátku a=0)
b - proměnná (na začátku b=4)
čas je uveden v sekundách a čas vítěze je tučně zvýrazněn (závisí na podmínkách)
opakování výpočtu výrazu = 1 000 000 ×

Podmínky závodu:
PC: Cyrix 333MHz, 128 MB RAM
SW: W2000, Borland C++ 3.1

Výsledky závodu:

1. závodník 2. závodník čas 1. /s čas 2. /s poznámka
a=sin(b)a=cos(b) 1,151,43  
a=sin(b)/cos(b)a=tan(b) 2,401,60 používejte hotové funkce...
a=cos(b)/sin(b)a=1/tan(b) 2,521,81  
a=abs(b)a=sqrt(b*b) 0,050,82 b=(4)
a=abs(b)a=sqrt(b*b) 0,050,82 b=(-4)
a=pow(10,b)a=pow10(b) 1,100,60 používejte hotové funkce...
a=pow(b,0.5)a=sqrt(b) 11,920,73 vyvarujte se desetinných čísel
a=pow(b,4)a=b*b*b*b 1,150,16  
a=b*ba=b/b 0,050,11 ...obecné moudro
a=b*0.1a=b/10 0,500,11 ne vždy je násobení rychlejší...
a=b+ba=b-b <0,05  
a=b++a=b-- <0,05  
a=a+ba+=b <0,05  
a=a+1a++ <0,05  
a=10-4a=10-b 0,00<0,05 používejte konstanty
a=b-b-ba=b*(-1) < 0,05< 0,11 sčítání a odčítání přece jenom vítězí
a=b+b+b+ba=b*4 < 0,05< 0,11 sčítání a odčítání přece jenom vítězí
a=b % 10a=div(b,10).rem 0,110,16 operátor je na tom líp než funkce

Poučení ze závodu:
  1. pokud to jde, vyvarujte se desetinných čísel
  2. sčítání a odčítání je rychlejší než násobení a dělení
  3. násobení je rychlejší než dělení
  4. používejte konstanty
  5. používejte hotové funkce - většinou jsou rychlejší než pokusy i jejich implementaci


Gimli2 | Vyšlo: 29. 1. 2005 - 23:35:12 | Zobrazení: 3432

Články podobné

Podobnost je určována triviální cestou shody některého ze slov z nadpisu článku. Jsem zvědavej, co to tu bude nabízet za asociace ;-)