Sinner.PWN Posted January 22, 2017 Posted January 22, 2017 (edited) 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 January 22, 2017 by SoNNy.sys
[email protected] Posted January 22, 2017 Posted January 22, 2017 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? 1
Sinner.PWN Posted January 22, 2017 Posted January 22, 2017 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.
Administrator WopsS Posted January 22, 2017 Administrator Posted January 22, 2017 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.
Administrator WopsS Posted January 22, 2017 Administrator Posted January 22, 2017 La mai multe chestii ma refer la mai mult de 5 (sau cat considera fiecare).
Sinner.PWN Posted January 22, 2017 Posted January 22, 2017 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.
[email protected] Posted January 22, 2017 Posted January 22, 2017 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.
Administrator WopsS Posted January 22, 2017 Administrator Posted January 22, 2017 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.
Sinner.PWN Posted January 22, 2017 Posted January 22, 2017 Repet, vorbim de optimizare...cazul lui WopsS e ala in care e mai ok if/else. Deja ce trece peste if() - else if() else scade in performanta fata de switch
[RW]Robi Posted January 22, 2017 Posted January 22, 2017 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 1
Spmn Posted January 22, 2017 Posted January 22, 2017 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. 1
[email protected] Posted January 22, 2017 Posted January 22, 2017 (edited) 14 minutes ago, SoNNy.sys said: // Edited January 22, 2017 by [email protected] // double post
[RW]Robi Posted January 22, 2017 Posted January 22, 2017 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,
Sinner.PWN Posted January 22, 2017 Posted January 22, 2017 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.
[email protected] Posted January 22, 2017 Posted January 22, 2017 4 minutes ago, [RW]Robi said: Si de unde ai avut tu gamemodeul alora care au 1000 de playeri online? de stii ca nu folosesc switch Vezi nickname-ul.
[RW]Robi Posted January 22, 2017 Posted January 22, 2017 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.
[RW]Robi Posted January 22, 2017 Posted January 22, 2017 Chiar acum, [email protected] a spus: Vezi nickname-ul. 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.
[email protected] Posted January 22, 2017 Posted January 22, 2017 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.
[RW]Robi Posted January 22, 2017 Posted January 22, 2017 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.
Sinner.PWN Posted January 22, 2017 Posted January 22, 2017 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
Spmn Posted January 22, 2017 Posted January 22, 2017 (edited) Lel Flameul din chat s-a mutat in topicuri. // LE: @[email protected] mi-au zis niste baieti care se uita la liveuri ca mi-ai pus anticheatul la bookmarks Edited January 22, 2017 by Spmn blaah
Sinner.PWN Posted January 22, 2017 Posted January 22, 2017 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.
[RW]Robi Posted January 22, 2017 Posted January 22, 2017 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(); }
[RW]Robi Posted January 22, 2017 Posted January 22, 2017 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?
Sinner.PWN Posted January 22, 2017 Posted January 22, 2017 Chiar acum, [RW]Robi a spus: recunoaste ca e veche. prefer sa scriu if(listitem == 0) { IdontLikeThisTopic(); } N-ai nevoie de acolade...un simplu TAB la IdontLikeThisTopic() pus sub if e destul.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now