Jump to content

Optimizare


Mister

Recommended Posts

Acum 14 minute, [email protected] a spus:

E un plugin pe .com cu care poti testa de cate ori este folosita o functie si cat dureaza sa fie executata: http://forum.sa-mp.com/showthread.php?t=271129
Folosind acel plugin si GetServerTickRate poti sa iti dai seama ce ar trebui sa optimizezi si daca e nevoie sa optimizezi ceva.

Daca vrei sa optimizezi ceva, cred ca ar trebui sa te uiti la time, nu if/switch sau marimea array-urilor, tipul de variabile utilizate sau ZCMD vs Y_CMD. 
Dar optimizarea cand ai 50-100-200 playeri online nu prea conteaza daca e gazduit pe un host ok. 
 

E chiar foarte util, l-am folosit pe vremea cand era abia lansat si iti poti face usor o idee despre serverul tau. Tin sa te contrazic si sa-ti zic ca daca folosesti un plugin pentru comenzi o sa maresti performantele ;) Se recomanda chiar si pe samp wiki sa folosesti switch in loc de if/else asa ca mai bine nu posta aici :)

Edited by SoNNy.sys

Sinner.png

Link to comment
Share on other sites

13 minutes ago, SoNNy.sys said:

E chiar foarte util, l-am folosit pe vremea cand era abia lansat si iti poti face usor o idee despre serverul tau. Tin sa te contrazic si sa-ti zic ca daca folosesti un plugin pentru comenzi o sa maresti performantele ;) Se recomanda chiar si pe samp wiki sa folosesti switch in loc de if/else asa ca mai bine nu posta aici :)

N-am zis ca nu ar face o diferenta, dar diferenta e atat de mica incat nu conteaza. E 2017. Nu avem servere cu 32Mb de rami si procesor de 200Mhz. Nu e nevoie sa optimizezi orice.
E o diferenta dintre teoria de pe wiki-ul sa:mp/benchmark-uri si realitate.

Tu folosesti mereu switch in loc de if si crezi ca e vreo diferenta pe server?

  • Upvote 1
Link to comment
Share on other sites

Chiar acum, [email protected] a spus:

N-am zis ca nu ar face o diferenta, dar diferenta e atat de mica incat nu conteaza. E 2017. Nu avem servere cu 32Mb de rami si procesor de 200Mhz. Nu e nevoie sa optimizezi orice.
E o diferenta dintre teoria de pe wiki-ul sa:mp/benchmark-uri si realitate.

Tu folosesti mereu switch in loc de if si crezi ca e vreo diferenta pe server?

Fa-ti un test pe OnDialogResponse cu if-uri peste tot si dupa cu switch pe dialogid la vreo ~100 dialoguri si acceseaza-l pe ultimul. Hostul de sa-mp nu e dedicat serverului tau de samp, ai o anumita limita impusa. Daca tu consideri ca poti lasi asa cu else/if si cu zcmd si cu array-uri cu dimensiuni aiurea etc si o sa mearga la fel de bine te inseli. Am vazut zeci de server cu "mega deschidere" si la 100+ = desync de cate 2-3 secunde asa ca nu abera.

Sinner.png

Link to comment
Share on other sites

29 minutes ago, SoNNy.sys said:

E chiar foarte util, l-am folosit pe vremea cand era abia lansat si iti poti face usor o idee despre serverul tau. Tin sa te contrazic si sa-ti zic ca daca folosesti un plugin pentru comenzi o sa maresti performantele ;) Se recomanda chiar si pe samp wiki sa folosesti switch in loc de if/else asa ca mai bine nu posta aici :)

Aici tin sa fiu de acord cu @[email protected], nu e necesar sa folosesti mereu switch, daca am doua valori de comparat, ce fac fac

new a = 5;

switch (a)
{
	case 5:
	{
		a = 1;
	}
	default:
	{
		a = 2;
	}
}

sau

new a = 5;

if (a == 5)
{
	a = 1;
}
else
{
	a = 2;
}

Daca ai mai multe chestii de comparat, da merge un switch.

Link to comment
Share on other sites

Chiar acum, WopsS a spus:

Aici tin sa fiu de acord cu @[email protected], nu e necesar sa folosesti mereu switch, daca am doua valori de comparat, ce fac fac


new a = 5;

switch (a)
{
	case 5:
	{
		a = 1;
	}
	default:
	{
		a = 2;
	}
}

sau


new a = 5;

if (a == 5)
{
	a = 1;
}
else
{
	a = 2;
}

Daca ai mai multe chestii de comparat, da merge un switch.

Atata timp cat vorbim de optimizare nu ma refeream la exemplu tau. Consider ca daca ai sarit deja de 3 comparatii tre' sa intri pe switch pentru ca e mai util.

Sinner.png

Link to comment
Share on other sites

1 minute ago, SoNNy.sys said:

Fa-ti un test pe OnDialogResponse cu if-uri peste tot si dupa cu switch pe dialogid la vreo ~100 dialoguri si acceseaza-l pe ultimul. Hostul de sa-mp nu e dedicat serverului tau de samp, ai o anumita limita impusa. Daca tu consideri ca poti lasi asa cu else/if si cu zcmd si cu array-uri cu dimensiuni aiurea etc si o sa mearga la fel de bine te inseli. Am vazut zeci de server cu "mega deschidere" si la 100+ = desync de cate 2-3 secunde asa ca nu abera.

Pai in cazul dialogurilor, switch e folosit pentru ca de-asta exista switch. Dar daca e o singura variabila de comparat, o sa folosesc mereu if pentru ca e mai usor de citit codul.
Si chiar si in cazul ala, nu cred ca o sa fie diferente mari de performanta pe un server cu 200 playeri online.

Si eu am vazut servere cu 1000 playeri online ce folosesc ZCMD si nu folosesc switch-uri peste tot fara motiv. 

Mega-deschiderile au probleme cu timere/callback-urile procesate des (gen OnPlayerUpdate) sau poate nici macar nu folosesc ZCMD.

Link to comment
Share on other sites

5 minutes ago, SoNNy.sys said:

Atata timp cat vorbim de optimizare nu ma refeream la exemplu tau. Consider ca daca ai sarit deja de 3 comparatii tre' sa intri pe switch pentru ca e mai util.

Aha, am zis asta pentru ca am vazut pe cineva care folosea switch cu doua case-uri.

Link to comment
Share on other sites

Chiar acum, [email protected] a spus:

Pai in cazul dialogurilor, switch e folosit pentru ca de-asta exista switch. Dar daca e o singura variabila de comparat, o sa folosesc mereu if pentru ca e mai usor de citit codul.
Si chiar si in cazul ala, nu cred ca o sa fie diferente mari de performanta pe un server cu 200 playeri online.

Si eu am vazut servere cu 1000 playeri online ce folosesc ZCMD si nu folosesc switch-uri peste tot fara motiv. 

Mega-deschiderile au probleme cu timere/callback-urile procesate des (gen OnPlayerUpdate) sau poate nici macar nu folosesc ZCMD.

Si de unde ai avut tu gamemodeul alora care au 1000 de playeri online? de stii ca nu folosesc switch

  • Upvote 1

                        

 

 

Link to comment
Share on other sites

5 minutes ago, WopsS said:

Aici tin sa fiu de acord cu @[email protected], nu e necesar sa folosesti mereu switch, daca am doua valori de comparat, ce fac fac


new a = 5;

switch (a)
{
	case 5:
	{
		a = 1;
	}
	default:
	{
		a = 2;
	}
}

sau


new a = 5;

if (a == 5)
{
	a = 1;
}
else
{
	a = 2;
}

Daca ai mai multe chestii de comparat, da merge un switch.

Lucrez in colaborare cu niste baietasi la un proiect si unul a scris niste verificari EXACT ca asta. Am ramas putin fara cuvinte, avand in vedere ca omul e student in domeniu. Inteleg sa fie preocupat de optimizare, dar in plm, un switch in loc de o verificare if-else arata urat rau.

  • Upvote 1
Link to comment
Share on other sites

Chiar acum, Spmn a spus:

Lucrez in colaborare cu niste baietasi la un proiect si unul a scris niste verificari EXACT ca asta. Am ramas putin fara cuvinte, avand in vedere ca omul e student in domeniu. Inteleg sa fie preocupat de optimizare, dar in plm, un switch in loc de o verificare if-else arata urat rau.

pentru cateva ms mai putine, prefer sa scriu cu if si else,

                        

 

 

Link to comment
Share on other sites

Acum 1 minut, Spmn a spus:

Lucrez in colaborare cu niste baietasi la un proiect si unul a scris niste verificari EXACT ca asta. Am ramas putin fara cuvinte, avand in vedere ca omul e student in domeniu. Inteleg sa fie preocupat de optimizare, dar in plm, un switch in loc de o verificare if-else arata urat rau.

Ne contrazicem aici pe if/switch si o groaza de server au sute de linii de cod sub "OnPlayerUpdate" si timere pentru orice cooldown sau bariere etc. :))

Sinner.png

Link to comment
Share on other sites

Chiar acum, [email protected] a spus:

Am vazut 4 servere cu 1000 online ce folosesc ZCMD, nu folosesc switch peste tot si nu au probleme de desync. E ca si cum sunt lucruri mai importante de optimizat decat pluginul folosit pentru procesarea comenzilor, marimea array-urilor si tipul variabilelor. 

In exemplul tau, switch e folosit pentru ca de-asta exista switch. Ziceam doar ca nu are sens sa folosesti switch in loc de if (cum e in exemplul lui wopss) mereu pentru 'performanta'.

Serverele fantoma care pica la 100 online, pica pentru ca timere prost optimizate sau executa calcule complexe in callback-urile ce-s updatate des (OnPlayerUpdate). 

ba, de unde stii ca aia cu 4 servere folosesc if si nu switch? ai cumva gamemodeurile lor?

2.Bugged cand a bagat quest avea un lag imens, pentru ca Shad0w e un idiot, si a facut sa se roteasca obiectul indiferent daca esti langa el sau nu, trebuia sa puna ca daca esti langa el sa se roteasca, si daca nu sa nu se roteasca.

 

                        

 

 

Link to comment
Share on other sites

1 minute ago, [RW]Robi said:

2.Bugged cand a bagat quest avea un lag imens, pentru ca Shad0w e un idiot, si a facut sa se roteasca obiectul indiferent daca esti langa el sau nu, trebuia sa puna ca daca esti langa el sa se roteasca, si daca nu sa nu se roteasca.

 

Shad0w e un idiot, dar obiectele se rotesc doar daca esti aproape de ele. 

Implementarea obiectelor ascunse n-a fost prea buna, dar nu am avut timp sa rescriu mare parte din cod si l-am lasat asa.

Link to comment
Share on other sites

Chiar acum, [email protected] a spus:

Shad0w e un idiot, dar obiectele se rotesc doar daca esti aproape de ele. 

Implementarea obiectelor ascunse n-a fost prea buna, dar nu am avut timp sa rescriu mare parte din cod si l-am lasat asa.

Mare parte din cod? e maxim 250 de lini ba deci nu cred, acum chiar am motive sa cred ca esti tu, Shad0w lenes toata ziua.

 

                        

 

 

Link to comment
Share on other sites

Acum 1 minut, [RW]Robi a spus:

si chiar sunt sigur ca esti tu, serios?

Esti un afurisit de copil care se da drept el, si daca chiar ai fi tu, tot idiot esti mecanica ta pe server e ca in 2011.

Ce mecanica man, esti TheLink sub acoperire? =))

switch e ok de exemplu pe un caz de genul: http://imgur.com/e7i2LOS

 

Sinner.png

Link to comment
Share on other sites

Acum 2 minute, [email protected] a spus:

Shad0w e un idiot, dar obiectele se rotesc doar daca esti aproape de ele. 

Implementarea obiectelor ascunse n-a fost prea buna, dar nu am avut timp sa rescriu mare parte din cod si l-am lasat asa.

Am facut ceva de genul in timerul ce tine de jucator: http://imgur.com/a/fTPrx merge mai mult decat perfect si pot confirma chiar prin tick.

Sinner.png

Link to comment
Share on other sites

Chiar acum, SoNNy.sys a spus:

Ce mecanica man, esti TheLink sub acoperire? =))

switch e ok de exemplu pe un caz de genul: http://imgur.com/e7i2LOS

 

recunoaste ca e veche.

prefer sa scriu

if(listitem == 0) { IdontLikeThisTopic(); } 

 

                        

 

 

Link to comment
Share on other sites

Chiar acum, [email protected] a spus:

Shad0w e un idiot, dar obiectele se rotesc doar daca esti aproape de ele. 

Implementarea obiectelor ascunse n-a fost prea buna, dar nu am avut timp sa rescriu mare parte din cod si l-am lasat asa.

Ba, ai avut live fara mine fututi rasa-n cur?

 

                        

 

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.