Kezdőoldal » Számítástechnika » Programozás » Miért van az, hogy az online...

Ozmium42 kérdése:

Miért van az, hogy az online Életjátékok gyorsak, amiket pedig én írok, azok lassúak?

Figyelt kérdés

Itt van például ez:


[link]


A legjobb felbontás majdnem pixeles, és így hatalmas a tábla, mégis maximális sebességgel hasít. Az enyémen például 200*200-as táblán már majdnem egy másodpercig tart egy kör, így döcög. Mi lehet a titok?


2017. jún. 7. 22:44
1 2
 1/15 anonim ***** válasza:
talán a szerverek gyorsasága?
2017. jún. 7. 22:47
Hasznos számodra ez a válasz?
 2/15 anonim ***** válasza:
8%
Mert nem tudsz programozni?
2017. jún. 7. 22:54
Hasznos számodra ez a válasz?
 3/15 A kérdező kommentje:
Mikortól tud valaki a programozni? A Hello world már programozásnak számít, vagy ott kezdődik, hogy operációs rendszert programozok? Amatőr vagyok, teljesen hobbiból és autodidakta módon tanulom a programozást, ott tartok ahol tartok, elnézésedet kérem.
2017. jún. 7. 22:58
 4/15 anonim ***** válasza:
100%
Hát most ebből a "leírásból" amit írtál a jó isten se mondja meg miért nem jó amit csinálsz.
2017. jún. 7. 23:01
Hasznos számodra ez a válasz?
 5/15 anonim ***** válasza:
Például onnan, hogy értelmes kérdéseket tesz fel.
2017. jún. 7. 23:03
Hasznos számodra ez a válasz?
 6/15 anonim ***** válasza:
100%

"Miért van az, hogy az online Életjátékok gyorsak, amiket pedig én írok, azok lassúak?"

Kezdetként mondjuk közzétehetnéd a Te változatodat, hogy lássuk hol van a gond, hol lehet optimalizálni még a kódon.

2017. jún. 7. 23:19
Hasznos számodra ez a válasz?
 7/15 A kérdező kommentje:

Meglehetősen klasszikus a megközelítésem. Egy mátrix tartalmazza a mező állapotát, aztán egy másik mátrixba kiszámolódik az új generáció, és az első mátrix lecserélődik a másodikra. A legújabb verzióhoz PyOpenGL-t használtam.


https://pastebin(pont)com/cvUvDBJG

2017. jún. 7. 23:29
 8/15 Hominida ***** válasza:
100%

:) Ugyanez volt az én első önálló programozói problémám évtizedekkel ezelőtt. Akkor az volt a válasz, hogy én egy BASIC interpreteren futtattam az én verziómat, egy srác viszont szerzett valahonnan egy leírást a processzorról – internet még nem volt –, és csinált egy gépi kódú változatot. A különbség ámulatba ejtő volt.


Vannak trükkök, amikkel egy ilyen feladat megoldása meggyorsítható, de a lényegi különbség valószínűleg még mindig ugyanaz. A Python nyelvű programot interpreter hajtja végre, míg más gépeken valószínűleg gépi kódra fordított program fut. Ha te olyan nyelvre írod át a programodat, amely legalább egy Java vagy .NET környezetre támaszkodik, már sokkal gyorsabb lesz a végeredmény. Még jobb egy natív kódba fordító compiler, C++, Visual Basic, Free Basic, Pascal stb.


A problémám az az egésszel, hogy 1982-ben egy olyan gépen, amelynek a RAM-ja összesen 16 kilobyte volt, a processzor órajele kb. 1 megahertz, a Basic interpreter a 40x25-ös táblát szintén kb. másodpercenként tudta frissíteni. A 200x200-as terület ezek szerint kb. 8 megahertzes gépen menne ugyanilyen gyorsan, mondjuk így. A te géped viszont valószínűleg 3000 megahertzes körüli lehet. Igaz, hogy a mostani operációs rendszerek hatékonysága kis töredéke a régiekének, de ezzel együtt is valószínű, hogy a programod még sokat optimalizálható.

2017. jún. 8. 00:36
Hasznos számodra ez a válasz?
 9/15 anonim ***** válasza:
24%
Pontosan az a baj, hofy hobbiból, autodidakta módon csinálod, semmi fogalmad nincs az algoritmusokról és adatszerkezetekről. Pl ritkamátrix.
2017. jún. 8. 08:38
Hasznos számodra ez a válasz?
 10/15 anonim ***** válasza:

Lehet, hogy rossz adatszerkezetet használsz, mondjuk array helyett typedarray-t kellene használnod, vagy tömb helyett láncolt listát, esetleg valamilyen stack-et. Ha OpenGL, akkor lehet, hogy nem használsz VBO-t, vagy egyéb hasonló megoldásokat ott, ahol kellene.

Vagy rossz az algoritmusod.

Ha programozni akar az ember, alaposan meg kell ismernie az algoritmusokat, az adatszerkezeteket, és nem árt a programtervezési minták ismerete is. Ezek után lehet komolyabban agyalni, hogy mit mivel hogyan mikér és miért.

2017. jún. 8. 08:46
Hasznos számodra ez a válasz?
1 2

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!