Kezdőoldal » Számítástechnika » Programozás » A mai gépek miért nem tudnak...

A mai gépek miért nem tudnak a másodperc tört része alatt 0..2147483647 értékig elszámolni?

Figyelt kérdés

Nekem fura az, hogy nem tudják ezt a műveletet a másodperc tört része alatt végrehajtani a mai gépek.

Bár Ryzen 7 vagy Core i7 esetén nem próbáltam, Ryzen 5 3600 gépen igen és meglepő a 3-4 másodperc, ami e művelethez kell.

Esetleg párhuzamosítani kellene processzormagonként az ilyen bonyolult műveleteket? (mondjuk ahhoz nem mintha értenék).

Miért lehetséges ez?



2022. okt. 2. 08:14
1 2 3 4 5
 11/41 A kérdező kommentje:

"Azért egy raspberry pi-t nem kellene egy modern i7-es procihoz hasonlítani. Míg az első gép komplette 35 dolcsi, a második proci magában 450..."

Megemlítve lett, nem hasonlítva.

A kérdést nem a Raspberry-hasonlattal indítottam.

Ryzen 5 3600 esetén kb. 4 mp.

2022. okt. 2. 10:07
 12/41 anonim ***** válasza:
100%

"Nincsen semmilyen "tetűlassú" algoritmus, Egyszerű ciklus (amelyben semmi sem történik) akár Pascal-ban akár C-ben."


Ez már tetű lassú.

2022. okt. 2. 10:31
Hasznos számodra ez a válasz?
 13/41 A kérdező kommentje:

Értem, tehát egy sima bármilyen ciklus, amely 0-tól megadott értékig elszámol, önmagában tetűlassú.

Jó újat tanulni.

A ciklusok a programozási nyelvek elemi részei és én azt gondoltam: gyors. Most "kiderült" számomra, hogy "ez már önmagában tetűlassú".

Hmm, érdekes.

2022. okt. 2. 10:37
 14/41 anonim ***** válasza:
100%

Itt a leggyorsabb megoldás:


xor EAX,EAX


loop:

inc EAX

jmp loop

2022. okt. 2. 10:43
Hasznos számodra ez a válasz?
 15/41 anonim ***** válasza:
100%

Minden műveletnek van egy processzorigénye. Az üres ciklusnak rögtön 3: ellenőrizni a feltételt, ugrani a cikuls elejére, majd növelni a ciklusváltozót.

Minden ciklus lassú, mert újra meg újra el kell vézegni egy műveletsort. Ha 2 ciklus van egymásban, az szó szerint tetűlassú, ha 3 az már maga a halál... Ha n, akkor kvázi game over. Keress rá az n királynő problémára. Mi egyetemen ennek a brute force megoldó algoritmusával (ami n ciklus egyben) benchmarkoltunk P4-eket és korabeli modern laptopot. A P4 megfeküdt tőle, a laptopnak is sok-sok percbe került eredményre jutni.

2022. okt. 2. 11:03
Hasznos számodra ez a válasz?
 16/41 anonim ***** válasza:
100%
gyors kérdés, ugye nem irattad ki egyesével?
2022. okt. 2. 11:08
Hasznos számodra ez a válasz?
 17/41 anonim ***** válasza:
100%
Aztán mégis mit számít ez a gyakorlatban?
2022. okt. 2. 11:12
Hasznos számodra ez a válasz?
 18/41 A kérdező kommentje:

Eszembe se jutott kiiratni.

Számomra ez "egy érdekesség", a gyakorlati hasznát nem tudom.


Az egymásbaágyazott ciklusok azt gondoltam azért lassúak, mert sokszorosan hajtódik végre. Például az "egyszerű rendezés", ami két sima egymásba ágyazott for ciklus.

2022. okt. 2. 11:31
 19/41 anonim ***** válasza:
100%
Egy 4 magos processzor 3.5GHz-en 14 milliárd számítást végez másodpercenként. Hogyha neked ~2 milliárdig nem számol el 1 másodperc alatt, az a program és nem a CPU hibája.
2022. okt. 2. 12:34
Hasznos számodra ez a válasz?
 20/41 A kérdező kommentje:

Segítesz hogy hol hibáztam?


{$optimization level3}


{mondjuk optimalizacio nelkul is ugyanaz van}


program szamolaspelda;


var

szam : longint;

begin

szam:=0;

while (szam < maxlongint) do

inc(szam);

writeln('while vege');

for szam := 0 to maxlongint do

begin

end;

writeln('for ciklus vege');

end.

2022. okt. 2. 12:42
1 2 3 4 5

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!