Kezdőoldal » Számítástechnika » Programozás » Egy program sebessége függ a...

Egy program sebessége függ a processzortól, vagy csak a programnyelvtől?

Figyelt kérdés

Pl. az összeadás gyorsabb, ha új, modernebb processzorok végzik el?

Vagy az ilyen alapműveletek ugyanolyan gyorsak? Csak a programnyelvtől függ a sebesség?


2022. jún. 4. 21:38
 1/6 anonim ***** válasza:
88%
Függ nagyon is, mindkettőtől. Sokkal gyorsabb egy Zen3/AlderLake mint egy Ivy Bridge idejéből lévő CPU.
2022. jún. 4. 21:41
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:
91%

Pont, hogy a processzortól függ jobban.

Persze, azért egyáltalán nem mindegy, hogy C-ben, vagy Pythonban írod a kódot, ami natív binárisra fordít, az nagyon gyors tud lenni, ami viszont értelmezett nyelv, az nagyon lassú.

De gondolj bele: mondjuk egy 100 MHz-es 486-os ugyanannyi idő alatt végezné el ugyanazt az összeadást, mint egy 4 GHz-es AMD FX?

2022. jún. 4. 21:45
Hasznos számodra ez a válasz?
 3/6 anonim ***** válasza:
Szerinted egy Z80 procin (pl ZX Spektrum) ugyanolyan gyorsan fog futni ugyanaz a C-ben írt összeadássor mint egy PC-n Core i9 12xxx procin?
2022. jún. 5. 00:39
Hasznos számodra ez a válasz?
 4/6 anonim ***** válasza:

Leginkább a processzortól, és a programnyelv jellegétől függ.

A processzor sebessége és architektúrája határozza meg, hogy milyen gyorsan tud egy-egy elemi műveletet végrehajtani. Értelemszerűen: minél több műveletet képes elvégezni egy időegység alatt, azokat annál gyorsabban hajtja végre.

A programnyelv jellegén pedig azt kell érteni, hogy fordítóval, értelmezővel, vagy valami egyéb technikával oldották-e meg. A gép (a proci) csak gépi kódban "ért". Abban programozni viszont finoman szólva is macerás. Ezért jelentek meg a különböző programozási nyelvek. Viszont ezeket a proci nem érti, ezért át kell alakítani őket gépi kódú utasításokra. Ez több módon történhet:

- Fordító. A fordítóprogram végigmegy a teljes programkódon, és azt egy az egyben átalakítja gépi kóddá, amit már a proci közvetlenül is meg tud emészteni.

- Értelmező. Ilyenkor az értelmező soronként értelmezi a kódot, és adja be a procinak. Ha egy sorra 10 ezerszer kerül rá a vezérlés, min a 10 ezerszer értelmezi, és beadja a procinak.

- Egyéb. Nem akarok most kisregényt írni, minden olyan "köztes" megoldás ide tartozik, ami a fentebbi kategóriákba nem illik bele. Pl. futásidőben fordítás (pl. Perl), köztes bináris kód (Java, és ha úgy vesszük, a .Net is).

Az értelmezett nyelvek mindig potenciálisan lassabbak, mint azok, amiknél fordítókat használnak. De pl. a különböző fordítóval megvalósított nyelvek között alig van különbség. Egy összeadás Pascalban, C++-ban, és Go-ban is hasonló ideig fog tartani.

2022. jún. 5. 01:45
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:

Alapvetően igaz, hogy a modernebb proci gyorsabb, de ez feltételekrtől is függ.

Az integer összeadás biztos, hogy nem lesz gyorsabb egy modernebb procin, ha a régebbi procival azonos órajelen fut, vagy annál alacsonyabban.


A programnyelv nem túl meghatározó, inkább a nyelv fordítójának képességei döntőek. Már ha van egyáltalán fordító.

Programnyelv esetén az interpretált nyelvek (python) nagyon lassúak, a VM-esek (Java) már nem annyira, és a natív, gépi kódra fordítók (c, asm) a leggyorsabbak.


Ami még belejátszik a sebességbe, az az, hogy mi a feladat. Egy 486-os még erősen izzadt az .mp3 zenei fájlok lejátszásánál, de ugyanezt a feladatot játszva, erőlködés nélkül abszolválta egy öngyújtó méretű mp3-lejátszóban lévő ASIC, azaz célprocesszor.

2022. jún. 5. 06:28
Hasznos számodra ez a válasz?
 6/6 anonim ***** válasza:
* integer összeadás esetén természetesen csak gépi szóhossznál rövidebb, vagy azzal egyező operandusok esetén igaz a kijelentés.
2022. jún. 5. 06:31
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!