Szerző Téma: Optimalizált dolgok  (Megtekintve 3091 alkalommal)

Optimalizált dolgok
« Dátum: 2017. November 07. - 09:13:33 »
0
Sziasztok!
Huzamosabb ideje gondolkodok már azon, hogy miként lehetne még jobban optimalizált dolgokat létrehozni főként client oldalon (szerver oldalt most ez esetben nem említem, de persze arról is eshet szó, hátha tanulok belőle valami új dolgot). Tehát mondjuk for ciklussal szeretnék felrajzolni valamit. Tegyük fel egy inventory-t csinálok. Ki milyen praktikákra esküszik esetleg mivel tudsz segíteni a minél eredményesebb végcél elérésében?
Actionbar esetében miket érdemes csinálni? Esetleg milyen praktikákat ismertek a jobb optimalizálás érdekében?
Előre is köszönöm az ötleteket, remélem tudok belőle valami hasznosat tanulni amit a jövőben fel is tudok használni. 

Optimalizált dolgok
« Válasz #1 Dátum: 2017. November 10. - 10:41:46 »
+1
Szerintem max a CPU-val tudsz spórolni, ha mindig csak akkor rendereled ki, ha megváltozik pl amikor ráhúzodik az egér egy inventory slotra vagy amikor valamit kiválaszt az action báron ilyenek.
Még ha nagyon akarsz akkor pl inventory hovern-nél nem rendereled újra csak a felé renderelsz egy téglalapot bár nyilván akkor a ha item van a slotban akkor arra is ráhúzodik az új szín.
 
Viszont valami fura a textúra tárolásával vmem-ben (link) dupla akkora lesz, mint kéne. Lehet azért mert double buffered vagy még amit írtak hogy mipmap-ot is generál mellé.
De CPU cserébe nem dolgozik szinte semmit.

Optimalizált dolgok
« Válasz #2 Dátum: 2017. November 15. - 08:57:18 »
0
Igazából ezen a renderelési dolgon nem nagyon változtatnék, mert speciel az nagyjából rendben van szerencsére. Most belefutottam egy olyan hibába például, hogy fegyver elővételnél, ha floodoltatod az elővételt (setPedAnim és GiveWeapon van szerver oldalon) akkor képest egy játékostól 3-5% cpu-t is megzabálni a szerver, ami azért nem túl frankó (főleg ha ezt mondjuk felszorzom x játékossal). Flood elleni \"védelem\" sem megoldás, hiszen itt inkább maga a gondolkodás menetem volt fos.
Én speciel arra gondoltam (nagy eséllyel azért eszik, mert lefut egy for ciklus azért hogy átnézze, hogy van -e ilyen item nálam és akkor annak visszaadja a pontos helyét és darabszámát), hogy ezt az egészet átviszem client oldalra és szerveren már csak a tényleges, giveWeapon és SetPedAnim hívódik meg. Remélem ezzel sikerül azt a terhelés levennem ami előjött és nem kell felesleges (mármint nagy értékkel, kicsivel szerintem hasznos, hogyha nem tudja lefloodolni a useitem részt) \"flood\" védelmet beépítenem.
 

Optimalizált dolgok
« Válasz #3 Dátum: 2017. November 16. - 21:43:31 »
0
Szerintem is érdemes átvinni kliensre de akkor csak szerveren akkarsz jobban optimalizálni azért nem akarod a rendert megváltoztatni?
Meg attól szerintem jó lenne a flood védelmet megcsinálni.

Optimalizált dolgok
« Válasz #4 Dátum: 2017. November 16. - 22:17:26 »
0
nem. A rendert azért nem akarom, mert az icon-t nem csak akkor akarom megjeleníteni ha rajta van az egér (ha jól értettem). :D Meg az elég jelentéktelen fogyasztást generált eddig, így nem pont azon \"spórolnék\". 
Flood védelmet mindenképp bent tervezem hagyni, csupán az eddigi nagyobb \"timert\" kisebb értékre fogom cserélni, persze csak ha sikerül jobban kialakítanom az egész témát. :D 

Optimalizált dolgok
« Válasz #5 Dátum: 2017. November 17. - 00:01:51 »
0
A timert, hogy érted? KIsebbre veszed az értéket, hogy hamarabb érzékelje floodolásnak?

Optimalizált dolgok
« Válasz #6 Dátum: 2017. November 17. - 06:50:09 »
0
Jelenleg 2mp időközönként tudsz itemet használni (tehát nem tudod lefloodolni ha mondjuk az egyes actionslotra rakod és rátenyerelsz az egyes gombra ) és ezt fogom levenni kevesebb mint 1mp-re (máshol sem nagyon láttam még flood védelmet, tehát ha jól kialakítom, akkor nem kell nagy timerrel dolgoznom).

Optimalizált dolgok
« Válasz #7 Dátum: 2017. November 17. - 14:31:46 »
0
Rendes timer-t hasnálsz erre? setTimer-el?

Optimalizált dolgok
« Válasz #8 Dátum: 2017. November 19. - 11:04:12 »
0
Idézetet írta: dugasz1 date=1510925506


   
      Rendes timer-t hasnálsz erre? setTimer-el?
   


Igen setTimer-t használok.

Optimalizált dolgok
« Válasz #9 Dátum: 2017. November 20. - 12:41:08 »
0
Szerintem érdemesebb lenne lementened mindig, hogy mikor klikelt getTick-el és ha megint klikkelne előtte összehasonlítod, hogy mennyi idő telt el. Ha mégjobban akarod szofisztikálni akkor azt figyeled milyen sűrűn kattingat és ha nagyon elkezdi spamolni akkor tiltod le egy kis időre, nem csak, hogy 2 secenként csinálhatod.

Optimalizált dolgok
« Válasz #10 Dátum: 2017. November 20. - 15:35:42 »
0
egy nagyjából 500ms-s timer ami megáll egyből nagyon nem terhel semmit, főként miután nem renderben van benne. 

Optimalizált dolgok
« Válasz #11 Dátum: 2017. November 20. - 15:55:09 »
0
Viszont a 2. része erősen felhasználó barátabb

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal