Kezdőoldal » Számítástechnika » Programozás » Az osztás vagy a szorzás...

Az osztás vagy a szorzás számításigényesebb C++-ban?

Figyelt kérdés

2014. okt. 26. 13:51
 1/6 anonim ***** válasza:
50%
Nagyságrendileg egyforma.
2014. okt. 26. 14:06
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:
39%
Osztás hardveres megvalósításból adódóan lassabb szokott lenni, mint a szorzás, ezen fordítók ugyanakkor javíthatnak (pl reciprokkal szoroznak, de ez precizitáson ronthat).
2014. okt. 26. 17:26
Hasznos számodra ez a válasz?
 3/6 anonim ***** válasza:
84%

Ez inkább architektúra és nem nyelv függő:

Pentium 4 referencia:


x87 FPU

Szorzás:1~5 órajel

Osztás: 2~7 órajel


x86 CPU

Szorzás: 3 órajel

Osztás: 40 órajel


Ref: [link]


Ezért érdemes lebegőpontos számokat használni, meglepő módon gyorsabb az osztás, mint egész számmal. Ennek az az oka, hogy egész számú osztás esetén valójában egy algoritmus fut le: [link] Lebegő pontos szám esetén pedig egy erre való elektronika végzi a feladatot. (IEEE 754 szabvány)


Ez az MMX és SSE instrukció készlet miatt gyorsulhat feltéve ha nincs a műveletek között elágazás, hiszem az kisöpörné a pipeline-t és nem valósul meg az SIMD optimalizáció.

Egy jobb fordító továbbá kicseréli a kettő hatványaival való osztást shift left műveletre.

2014. okt. 26. 18:34
Hasznos számodra ez a válasz?
 4/6 anonim ***** válasza:
100%
Érdemes azt is tudni, hogy midig a memória olvasás a szűk keresztmetszet.
2014. okt. 26. 18:38
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:
70%

Hármasnál a pont.

Architektúra függvénye, nem a nyelvé.

Kapásból processzoronként változó az utasításkészlet, így míg egy x86 tud szorozni és osztani, számos RISC processzor nem tud ilyet, így pl. a szorzást sorozatos összeadással kell megvalósítani ezen chipek esetében.

Emellé beúszik még a képbe a lebegőpontos számok kezelése, illetve a lebegőpontos egység megléte amely megintcsak architektúra-függő és befolyásolja a végeredményt.

2014. okt. 27. 12:25
Hasznos számodra ez a válasz?
 6/6 anonim ***** válasza:
70%
Még ha van is hardveres osztója a processzornak, az osztás akkor is lassabb szokott lenni.
2014. okt. 27. 17:48
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!