Jump to content

Jak odlehčit mód a optimalizovat streamery [***]


ATomas

Recommended Posts

Jak odlehčit mód a optimalizovat streamery

 

Obtížnost: award_star_gold_2.pngaward_star_gold_2.pngaward_star_gold_2.pngaward_star_silver_2.pngaward_star_silver_2.png

 

cau takze jak sem slibil ukazu vam par triku jak odlehcit mod jak RAM tak CPU

vim ze ty co s pawnem zacinaji tak zatez neresi staraji se o to aby to fungovalo jak chteji i kdyz v jejich pripade je to jedno jejich mody sou maly takze se ta zatez ani neprojevi

 

Obsah

  • Odlehčujeme RAM
  • Odlehčujeme CPU

Odlehčujeme RAM

takze nejdrive jak odlehcit RAM

asi jak uz znate stary zmany trik se MAX_PLAYERS_EX samozdreejmne si pojmenujete jak chcete

v includu s_samp je MAX_PLAYERS 500 pro 500 slotovy server tak pochybuju ze budete mit 500 lidi na serveru zbytecne zrani RAM v promenych

#define MAX_PLAYERS_EX 100//pozor sem si zapocitejte jak pocet slotu nebo hratelnost + pocet botu na serveru

a nini pouziti

new promena[MAX_PLAYERS];
new promena[MAX_PLAYERS_EX];

coz je vlastne

new promena[500];
new promena[100];

i kdyz si rikaze usetrili jsme jenom 400 ale kdyz to pouzijete u vsech promenych tak se toho usetri hodne

ale pozor na toto

new romena[100][50];

tady se pocet promenych nasobi takze vlastne mate 5000 coz je hodne takovymto promenych se skuse vyhybat nebo nelpeje omezit na co nejmenci cisla

 

to bylo jak odlehcit RAM teď vam ukazu jak odlehcit CPU

 

Odlehčujeme CPU

takze na CPU ma nejvetsi zatez cyklus for a timery spise SetTimerEx normalni SetTimer ani moc nezatezuje odesila pouze public zadne paramtery ale SetTimerEx ano

 

takze kdyz mate treba

SetTimer("Vezeni",1000,1);

public Vezeni()
{
for(new i;i 	{
 if(IsPlayerConnected(i))
 {
 if(!IsPayerNPC(i))//kdyz neni hrac NPC je dobre toto pouzivat vsude kde vyte ze neni npc spise nejlepe na cely public nez u jednotlivych akci
 {
 	if(Cas[i] > 0) Cas[i] -- ;
 }
	}
}
return 1;
}

je lepsi pouzit

SetTimerEx("Vezeni",1000,1,"i",playerid);

public Vezeni(playerid)
{
Cas[playerid] -- ;
return 1;
}

a zase kdyz mate jeden public a tam hodne akci je dobre ho zase rozlozit do dvou publicu a dvou timeru ale poroz na timery aby se vam nepotkavaly

SetTimer("neco",5000,1);
SetTimer("neco2",5000,1);

chyba!

takto je to spravne

SetTimer("neco",5000,1);
SetTimer("neco2",5010,1);

takto se vam mozna potkaji ale az za hodne dlouho coz nebude mit takovou zatez protoze se akce rozlozi a nebudou se muset vykonavat najednou

 

dale jedno z nejhorsich veci co muzete udelat je mit cyklus for ve for treba takto


for(new i;i

  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

  • 1 year later...
new romena[100][50];

tady se pocet promenych nasobi takze vlastne mate 5000 coz je hodne takovymto promenych se skuse vyhybat nebo nelpeje omezit na co nejmenci cisla

abych pravdu rekl je to 5151 moznosti .. 5000 je nepresnej vypocet :) .. nepocital jsi moznosti romena[0-100][0-50] ale romena[1-100][1-50] ( 51*101 )

Link to comment
Share on other sites

  • 2 weeks later...

i když je to docela staré téma, tak to sem pisnu

 

Našel jsem chybu

 

if(Cas[i] > 0) Cas[playerid] -- ;

 

nemá to být takto?

if(Cas[i] > 0) Cas[i] -- ;

Link to comment
Share on other sites

  • 4 months later...

Dneska som to skúšal. Mód má teraz o 800 kB menej!!! Predtým mal 1,6 MB a boli lagy na servery. Dal som MAX_PLAYERS na 100 a MAX_SLOT na 20 lebo viac ludí by tam aj tak nebolo. Pred touto optimalizáciou bol priemerný ping serveru 55-70, teraz je 1-25 to je neuveriteľné!!! Máš u mňa +

 

:v:8-)

Link to comment
Share on other sites

new romena[100][50];

tady se pocet promenych nasobi takze vlastne mate 5000 coz je hodne takovymto promenych se skuse vyhybat nebo nelpeje omezit na co nejmenci cisla

abych pravdu rekl je to 5151 moznosti .. 5000 je nepresnej vypocet :) .. nepocital jsi moznosti romena[0-100][0-50] ale romena[1-100][1-50] ( 51*101 )

akorat ze kdyz mas promenou s kapacitou 50 tak mas 0,1,2,3 ... 49 a promena 50 uz neexistuje

Link to comment
Share on other sites

  • 2 weeks later...

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...