[Tutorial] Prost MUTE sistem u PAWN-u i MySQL-u

Započeo Dragi, Januar 19, 2025, 22:24:42 POSLE PODNE

prethodna tema - sledeća tema

Detth i 8 gostiju pregledaju ovu temu.

1. Nepotrebno opterećenje servera: task MuteTimer[60000]() se izvršava svake minute. Unutar tog taska, kod iterira kroz sve igrače (foreach(new i : Player)) i provjerava jesu li mutirani. Ovo je vrlo neučinkovito. Čak i ako mali broj igrača ima aktivan mute, server i dalje mora svake minute provjeravati sve igrače.

2. Nepotrebni SQL upiti: Unutar taska se izvršavaju SQL upiti za svakog mutiranog igrača svake minute. To dodatno opterećuje server i bazu podataka. Dovoljno je jednom spremiti vrijeme isteka mute-a u bazu, a ne ga ažurirati svake minute.

Opet moje neko mišljenje...
Upwork Skills
Back-end:
• PHP Frameworks (Laravel, Symfony,Codeigniter)
• Python/Django
• Node.js

Front-end:
• HTML
• CSS pre-processing (SASS, LESS)
• Javascript (JQuery, Ajax, Vue, Angular, React, etc.)
• Bootstrap

CMS
• Wordpress (Woocommerce)
• Shopify, Magento


Citat: №Grella poslato juče u 18:45:14 POSLE PODNE1. Nepotrebno opterećenje servera: task MuteTimer[60000]() se izvršava svake minute. Unutar tog taska, kod iterira kroz sve igrače (foreach(new i : Player)) i provjerava jesu li mutirani. Ovo je vrlo neučinkovito. Čak i ako mali broj igrača ima aktivan mute, server i dalje mora svake minute provjeravati sve igrače.

2. Nepotrebni SQL upiti: Unutar taska se izvršavaju SQL upiti za svakog mutiranog igrača svake minute. To dodatno opterećuje server i bazu podataka. Dovoljno je jednom spremiti vrijeme isteka mute-a u bazu, a ne ga ažurirati svake minute.

Opet moje neko mišljenje...

Ti si samo jedan obican palamud od svih palamuda. Ja volim kad neko mi da kritike, ali to volim od ucenih ljudi i koji znaju bontom donekle. Ne znas ni sta znas ni sta ne znas, kratko receno, a ti se ljuti koliko hoces.

Foreach ne laguje server!

MySQL je dizajniran da efikasno upravlja velikim brojem upita, a ako se pravilno konfigurise, moze da izdrzi znacajno opterecenje.

Jesi li cuo mozda za indexe? A da, palamudi ne znaju to.

Sta je problem sto se proverava svake minute? Objasni razlog? Ne palamudi vec objasni ako znas nesto? Serveri sa 1000 igraca koriste task od 1000ms i 60000ms jer je potreban! Dokle cu ponavljati ko papagaj? Zelite li uopste nauciti nesto novo?

Da nisi palamud, znao bi sta laguje server. Samo mi je krivo sto nemam plugin performance profiler da ti objasnim par stvari, ukinut je.

Ako si pizajzla i gledas performanse, sto se ne otvoris u uzmes lepo jaci CPU da moze da tera normalanu skriptu na 1000 igraca. Koliko para toliko i muzike. $$$

Ovo ti je glavni timer koji skripta koristi za mnogo, mnogo stvari. Nazovi ga GlobalTimer. Pored ovog, imas i na 1000ms i to ti je to od timera s takvim uzastopnim intervalima. I ti hoces da mi kazes da 2 timera laguju server? Jesi li ti normalan, izvini sto te pitam, ali dosadilo mi je objasnjvati onima vise koji nece da otvore dokumentaciju da procitaju JEDNU recenicu samo, a znaju da pisu "svoja neka misljenja s tri tackice...". Pedala samo od mojih stvari i to je to.

Srdacan pozdrav!

P.S. Voleo bih cuti @Vasic sta ima da kaze, jer i u njegovom FG koristi vrlo slican sistem, odakle sam i uzeo za primer kod koji se moze optimizovati za proveru i dekrementaciju. Slobodno ako ima jos neko od skriptera koji koriste ovaj sistem, voleo bih cuti vase misljenje i zasto ga koristite.

Poslednja Izmena: juče u 22:17:14 POSLE PODNE od Dragi Razlog: word



Ponovicu jos jednom. Ovaj sistem kao basic se moze napisati na dva optimizovana nacina.

Koriscenje timera - Nece nista uciniti serveru lose jedan timer. Dobro je sto se tice skalabilnosti ukoliko ga koristis pravilno i ne trpas za svaku sitnicu timer koji ce se vrteti i time ces dobiti jako brzo overload server jer vecina hostinga je samo reseller sa minimalnim specifikacijama.

Koriscenje Usporedbe Timestamp - Jako prosto, imas timestamp koji dodeljujes i cuvas, pozivom na onplayertext usporedjujes i ispjsujes ako je mutiran i koliko je ostalo do isteka. Prosta funkcija, prosta upotreba. Jako slican sistem samog rada sistema uz razliku samo upotrebe.

Razlog zbog kog ja preferiram usporedbu naspram timera - jako prosto. Smanjujes broj biblioteka, nemas nepotreban timer koji ce ti biti +1 u samom modu u vecini slucajeva. Iz tog razloga ja volim da svaki sistem bude sto prostiji i sto jednostavniji.

Ako povucemo globalnu crtu - moze se koristiti jedan i dugi nacin. Niti jedan nije manje ispravan. Sve zavisi od toga kako ce neko integrisati taj sistem i koliko je pametan.

Da se ne duzi prica, ukoliko neko misli da sam ja uzeo i rekao da je ovo los nacin - nisam. Rekao sam da ima prostiji i po mom misljenju bolja solucija.

Ukoliko kazete nesto, makar to jako dobro obrazlozite argumentima i cinjenicama.

@Dragi jako cenim tvoj rad. Postujem. Zato si i razumeo da kriika nije u smeru nadmenosti, nego raznovrsnosti. Sam mozes da obrazlozis koja je razlika, stvar preferencije. Ja kao i u webu koji radim volim da imam minimalizam, clean i ne koriscenje nepotrebnih stvari koje ce razlikovati u performansama generalno koje su jako vise primetne nego na samom SAMP-u.

Postujte autora.

Svaki komentar izvan ovog je suvisan.
Poslednja Izmena: juče u 22:38:24 POSLE PODNE od markosimic
HTML / CSS / Javascript / Inspect : Entry Masterclass.
ReactJS / Tailwind CSS / PWA / Axios / SCSS / Redux, ViteJS : Entry Masterclass.
C / C++ / C# / C-objective - kroz Pawn Lang : Entry Masterclass
Grupisano Pravljenje Objekata : Filterscript.


Sta je to web development?
To je nesto ono kao, kako bih to rekao, izgubis volju za zivotom i zelis da se ubijes, ali to je okej.
Onda jednostavno shvatis da si bio glup i resis problem, das sam sebi lajk,
skuvas NES 3u1 i pripremis se za sledeci projekat.

Citat: markosimic poslato juče u 22:25:55 POSLE PODNEPonovicu jos jednom. Ovaj sistem kao basic se moze napisati na dva optimizovana nacina.

Koriscenje timera - Nece nista uciniti serveru lose jedan timer. Dobro je sto se tice skalabilnosti ukoliko ga koristis pravilno i ne trpas za svaku sitnicu timer koji ce se vrteti i time ces dobiti jako brzo overload server jer vecina hostinga je samo reseller sa minimalnim specifikacijama.

Koriscenje Usporedbe Timestamp - Jako prosto, imas time stamp koji dodeljujes i cuvas, pozivom na onplayertext usporedjujes i ispjsujes ako je mutiran i koliko je ostalo do isteka. Prosta funkcija, prosta upotreba. Jako slican sistem samog rada sistema uz razliku samo upotrebe.

Razlog zbog kog ja preferiram usporedbu naspram timera - jako prosto. Smanjujes broj biblioteka, nemas nepotreban timer koji ce ti biti +1 u samom modu u vecini slucajeva. Iz tog razloga ja volim da svaki sistem bude sto prostiji i sto jednostavniji.

Ako povucemo globalnu crtu - moze se koristiti jedan i dugi nacin. Niti jedan nije manje ispravan. Sve zavisi od toga kako ce neko integrisati taj sistem i kako je pametan.

Da se ne duzi prica, ukoliko neko misli da sam ja uzeo i rekao da je ovo los nacin - nisam. Rekao sam da ima prostiji i po mom misljenju bolja solucija.

Ukoliko kazete nesto, makar to jako dobro obrazlozite argumentima i cinjenicama.

@Dragi jako cenim tvoj rad. Postujem. Zato si i razumeo da kriika nije u smeru nadmenosti, nego raznovrsnosti. Sam mozes da obrazlozis koja je razlika, stvar preferencije. Ja kao i u webu koji radim volim da imam minimalizam, clean i ne koriscenje nepotrebnih stvari koje ce razlikovati u performansama generalno koje su jako vise primetne nego na samom SAMP-u.

Postujte autora.

Svaki komentar izvan ovog je suvisan.

Ma razumem te u potpunosti. Sve si lepo rekao. I rezimirao si kako treba. Aplauz.

Ja nikad ne lazem, ono sto jeste i kazem. Zato moram da kazem da sam timestamp jeste bolje resenje za ovaj sistem. Ne moras da pratis stalno varijablu i da dekrementujes istu, cuvas u bazi i slicno... Kroz timestamp samo uporedis trenutno vreme s sacuvanim podatkom iz baze. Sve ja razumem. Zbog nekih drugih stvari sam se iznervirao...

Doslo je do nekih nesuglasica povodm OnPlayerUpdate i ovog clana koji prica u prazno nesto... Verujem da nije jedini, jer ne bi neki drugi clanovi da ih ne imenujem sad pisali da je forum propao u tom pogledu...

Citat: markosimic poslato juče u 22:25:55 POSLE PODNEjako cenim tvoj rad. Postujem.
Veruj da je uzajamno.

Najbolje da @Edo ukloni ovaj tutorial, a ja cu novi napraviti s oba nacina i nece me videti komentari vise osim "Tako je, gospodine/gospodjo." Uopste mi nije bila namera pisati referate, ako postoje neke korisne informacije, hajde neka ostane onda, ali cisto sumnjam, ko ce citati referate sad.

Citat: Dragi poslato juče u 22:44:36 POSLE PODNEMa razumem te u potpunosti. Sve si lepo rekao. I rezimirao si kako treba. Aplauz.

Ja nikad ne lazem, ono sto jeste i kazem. Zato moram da kazem da sam timestamp jeste bolje resenje za ovaj sistem. Ne moras da pratis stalno varijablu i da dekrementujes istu, cuvas u bazi i slicno... Kroz timestamp samo uporedis trenutno vreme s sacuvanim podatkom iz baze. Sve ja razumem. Zbog nekih drugih stvari sam se iznervirao...

Doslo je do nekih nesuglasica povodm OnPlayerUpdate i ovog clana koji prica u prazno nesto... Verujem da nije jedini, jer ne bi neki drugi clanovi da ih ne imenujem sad pisali da je forum propao u tom pogledu...
Veruj da je uzajamno.

Najbolje da @Edo ukloni ovaj tutorial, a ja cu novi napraviti s oba nacina i nece me videti komentari vise osim "Tako je, gospodine/gospodjo." Uopste mi nije bila namera pisati referate, ako postoje neke korisne informacije, hajde neka ostane onda, ali cisto sumnjam, ko ce citati referate sad.

Nema potrebe, sve ove diskusije treba da ostanu, jer su bas to - diskusije (edukacija)

Ps. Navikni se da ces videti dosta glupih nelogicnosti kada radim reformat dva code u jedan, uglavnom samo uradim primer principa i iskoristim bilo sta sto mi prvo naleti na dokumentaciji i ne trazim dalje.

<3
HTML / CSS / Javascript / Inspect : Entry Masterclass.
ReactJS / Tailwind CSS / PWA / Axios / SCSS / Redux, ViteJS : Entry Masterclass.
C / C++ / C# / C-objective - kroz Pawn Lang : Entry Masterclass
Grupisano Pravljenje Objekata : Filterscript.


Sta je to web development?
To je nesto ono kao, kako bih to rekao, izgubis volju za zivotom i zelis da se ubijes, ali to je okej.
Onda jednostavno shvatis da si bio glup i resis problem, das sam sebi lajk,
skuvas NES 3u1 i pripremis se za sledeci projekat.