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:
Legendaa - 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,15 | 1,43 | |
a=sin(b)/cos(b) | a=tan(b) | 2,40 | 1,60 | používejte hotové funkce... |
a=cos(b)/sin(b) | a=1/tan(b) | 2,52 | 1,81 | |
a=abs(b) | a=sqrt(b*b) | 0,05 | 0,82 | b=(4) |
a=abs(b) | a=sqrt(b*b) | 0,05 | 0,82 | b=(-4) |
a=pow(10,b) | a=pow10(b) | 1,10 | 0,60 | používejte hotové funkce... |
a=pow(b,0.5) | a=sqrt(b) | 11,92 | 0,73 | vyvarujte se desetinných čísel |
a=pow(b,4) | a=b*b*b*b | 1,15 | 0,16 | |
a=b*b | a=b/b | 0,05 | 0,11 | ...obecné moudro |
a=b*0.1 | a=b/10 | 0,50 | 0,11 | ne vždy je násobení rychlejší... |
a=b+b | a=b-b | <0,05 | ||
a=b++ | a=b-- | <0,05 | ||
a=a+b | a+=b | <0,05 | ||
a=a+1 | a++ | <0,05 | ||
a=10-4 | a=10-b | 0,00 | <0,05 | používejte konstanty |
a=b-b-b | a=b*(-1) | < 0,05 | < 0,11 | sčítání a odčítání přece jenom vítězí |
a=b+b+b+b | a=b*4 | < 0,05 | < 0,11 | sčítání a odčítání přece jenom vítězí |
a=b % 10 | a=div(b,10).rem | 0,11 | 0,16 | operátor je na tom líp než funkce |
Poučení ze závodu:
- pokud to jde, vyvarujte se desetinných čísel
- sčítání a odčítání je rychlejší než násobení a dělení
- násobení je rychlejší než dělení
- používejte konstanty
- používejte hotové funkce - většinou jsou rychlejší než pokusy i jejich implementaci
Gimli2 | Vyšlo: 29. 1. 2005 - 23:35:12 | Zobrazení: 3447
Články podobné
- Hromadný převod obrázků do PDF a sloučení do jednoho souboru v linuxu (19. 1. 2010)
- užitečné příkazy a poznámky pro práci s RAID polem (22. 7. 2009)
- MySQL a číselné řady (21. 9. 2007)
- I na vysoké škole se člověk může setkat s tělesnými tresty (26. 1. 2007)
- PHP bug - imageellipse(); a velké poloměry (26. 6. 2006)
- Trocha čerstvého větru na mlhavém místě (8. 1. 2006)
- Překlad programu A-note (30. 11. 2005)
- Geocaching, aneb poklady čekají právě na vás... (19. 8. 2005)
- PHP klient pro odběr počasí z měřící stanice na http://pocasi.barak.cz (18. 6. 2005)
- Překlad IP na HOSTa (3. 5. 2005)
- Malá hádanka na volnou chvíli (19. 1. 2005)
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 ;-)