Kezdőoldal » Számítástechnika » Programozás » Létezik olyan fordítói direktí...

Létezik olyan fordítói direktíva, vagy fordítónak paraméterként megadott érték, amely úgy optimalizálja a programot, hogy bizonyos dolgok gyorsabban hajtódjanak végre? (bővebben lent)

Figyelt kérdés

Free Pascal-ban írt program esetén kellene a megoldás, olyan műveletekre gondolok, mint például tömbökben adott elem keresése és más tömb elemeihez való hasonlítása, csere, rendezés. Létezik ilyen "optimalizálás" vagy nem igazán?

Esetleg ha C-be át lenne írva az egész, akkor optimális lehetne a sebesség, vagy abban nincs különbség, hogy a két programnyelv közül melyik fordítója állít elő jobban optimalizált kódot?

Normális, hogy mai korszerű számítógépeken a sima rendezési algoritmus is hajlamos belassulni Free Pascal esetén akkor is ha csak párszáz elemű a tömb?

Sima rendezési algoritmus alatt azt értem, hogy:

for i:=0 to n-1 do

begin

for j:=i+1 to n do

begin

...


Tehát ilyen műveletek "felgyorsítására" gondolok...

Jaa és ha lehet ne menjen el abba az irányba, hogy "ja, talán ha a hiperszuperultragyors rendezési algoritmust használnád, akkor gyorsabb lenne", mert nem kizárólag rendezési algoritmusok felgyorsítására gondoltam, hanem memóriában lévő tömbökkel történő műveletekre



2014. aug. 23. 04:56
 1/7 A kérdező kommentje:

Jaa, esetleg hasznos tanácsok is érdekelnek, amelyek szintén gyorsíthatják a program működését, például mondok egy példát hogy milyen tanácsokra gondolok: "az ilyen tömbökkel való műveleteket rakd külön eljárásokba"...

"i:=i+1" helyett használd az inc(i) parancsot a változó értékének növelésére...

Erről például sok éve azt mondta nekem egy programozó, hogy sokkal gyorsabb...

2014. aug. 23. 06:27
 2/7 ejbenjaro ***** válasza:
100%

Vannak fordító direktívák, melyek sebességre, vagy fájlméretre optimalizálnak, de azért csodát ne várj tőlük.

Ha kevés adat esetén is lassú a programod, akkor ott más baj lesz, amit a fordító nem fog tudni megoldani. És bármennyire is nem akarod hallani / tudomásul venni, akkor is sokat számít az általad írt algoritmus. Ha jobb algoritmust írsz gyorsabban fog futni.

2014. aug. 23. 08:20
Hasznos számodra ez a válasz?
 3/7 A kérdező kommentje:

A különféle CPU optimalizálási lehetőségek sokat számítanak vagy max pár másodpercet lehet nyreni vele? Meg pl. a smart linked units opció kikapcsolása hogy a bináris kisebb legyen...

Értem hogy gyorsabb lesz ha mondjuk más algoritmust használok, de hihetetlen hogy ma is probléma olyan egyszerű művelet mint pl. a rendezés... Mármint a mai sebesség meg dualcore mellett...

Látom van olyan opció is hogy különféle assembler-eket használjona fordító, nem tudom ezzel érdemes -e foglalkozni.

2014. aug. 23. 08:28
 4/7 ejbenjaro ***** válasza:
Úgy gondolom, hogy nem beszélhetünk másodpercekről, sokkal kisebb idő az amit nyersz. Itt olvashatsz arról, hogy Free Pascalban hogyan optimalizálj: [link]
2014. aug. 23. 09:53
Hasznos számodra ez a válasz?
 5/7 A kérdező kommentje:

Nagyon köszönöm a választ, el fogom olvasni.

Ha C-be át tudnám írni és GCC-vel fordítanám, esélyes hogy sokkal gyorsabb lenne, mivel több platformra van C, a fordítóját gyakran kiadják, hibákat javítanak benne, stb? Laikusként arra gondoltam, hogy esetleg jobb kódot állít elő.

2014. aug. 23. 10:17
 6/7 anonim ***** válasza:

"hihetetlen hogy ma is probléma olyan egyszerű művelet mint pl. a rendezés"


Egyáltalán nem probléma, ha sok elem van, belassul, ez ilyen. (ha nem tetszik, találj ki jobb algoritmust, meglátod, hogy nem fog menni)

2014. aug. 23. 14:52
Hasznos számodra ez a válasz?
 7/7 anonim ***** válasza:
Olvass utána az időosztályoknak, mindjárt rájössz, hogy miért probléma ez még dualcore mellett is.
2014. aug. 23. 20:12
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!