Jump to content

[REZOLVAT] De ce trebuie sa tin cont in optimizare ?


ResT
 Share

Recommended Posts

De ce trebuie sa tin cont in optimizare ?
Am cautat pe net, am citit o multime de topicuri de pe diverse comunitati, dar mai ales de pe sa-mp.com. 
Am facut acest topic deoarece sunt sigur ca o sa aflu lucruri noi, orice chestie m-ar ajuta.

Query-urile ingreuneaza modul de joc cand sunt folosite intr-o anumita situatie ? 
Care sunt cele mai importante script-uri din libraria ysi ?

Link to comment
Share on other sites

  • Retired

Da, query-urile ingreuneaza, deoarece acel query trimite informatii catre baza de date, considera baza de date ca un procesor sau un creier de exemplu, iar cum intr-un gamemode se folosesc sute de query-uri, gandeste-te cum ar fi daca un profesor de exemplu ti-ar spune 100 de lucruri iar tu trebuie sa memorezi, bine, nu am dat cel mai bun exemplu. Sa luam un procesor. Daca deschizi sute de tab-uri in browser incepe sa iti mearga greu PC-ul (browserul), procesorul nu poate face fata. Iar daca ai baza de date picata, cum a fost la zeroping acum 2 luni, trebuie sa folosesti in gamemode forma mysql_tquery sau mysql_pquery ca sa nu iti pice serverul si sa iti mearga in continuare. Daca folosesti mysql_query iti va pica serverul.

 

La fel si cu gamemode-ul, gandeste-te la acelasi exemplu de mai sus, daca ai avea un Intel Pentium 4 vs Intel Core i9 7900X. Asa este si cu optimizarea gamemode-ului. Tickrate-ul este un fel de FPS al serverului, toate serverele dau impresia ca sunt optimizate la putini playeri on (~200 ticks), dar se simte la multi jucatori (200-300+).

 

Daca doresti sa ai un gamemode optimizat, in primul rand trebuie sa ai cod scris curat si ordonat. Timerele sunt necazele multora mai ales cu gamemode-uri bigzone, am vazut intr-un gamemode un timer de 1ms (1 milisecunda) la speedometer, care este cel mai folosit. Acum sunt mai multe metode de optimizare, poti optimiza si cu functii externe, y_timers etc. Si array-urile incarca gamemode-ul, desigur, daca sunt folosite. Poti declara un array de 1024 de caractere daca tu folosesti numai 5 din ele, de exemplu:

new array[ 1024 ];

format(array, 5, "buna");

 

 Exista include-ul y_va tot din libraria YSI care iti usureaza munca. 

 

Acum hai sa-ti explic diferentele:

 

mysql_query - trimite query-ul sa zicem instant, asa ca baza de date se va suprasolicita daca sunt trimise multe.

mysql_tquery - trimite query-urile intr-o ordine anume, prima data le stocheaza si dupa le executa, ideal daca baza de date e picata.

mysql_pquery - trimite query-urile in pararel;

 

Cat despre libraria YSI, cele mai importante ar fi: 

 

- y_iterate

- y_commands (care vine la pachet cu y_master)

- y_timers

- y_hooks (daca esti pe module)

- y_bit

- y_va

 

si cam atat imi vine in minte momentan, voi da edit daca imi mai vin in minte.

 

Sper ca te-am ajutat, mult succes!

Edited by Syntetick
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...