Como se faz? -
Dragonic - 06.06.2017
Entгo, volta e meia vejo quando alguйm publica script, include ou seja o que for falando que й X tгo mais rбpido que Y mйtodo baseado em Z benchmark.
Eu sou meio cabaзгo em Pawn e logo pretendo abrir meu server e, justo por eu ser ruim, tenho certeza que meu script nгo tб bem otimizado. Como faзo os tais benchmarks para saber o quгo ruim й a situaзгo?
Ty.
Re: Como se faz? -
DarkBr - 06.06.2017
WTF?
Re: Como se faz? -
ViniBorn - 06.06.2017
https://sampforum.blast.hk/showthread.php?tid=218491
https://sampforum.blast.hk/showthread.php?tid=325006
Re: Como se faz? -
zCyan - 06.06.2017
Com certeza vocк quer saber como otimizar seus cуdigos certo? Blz ai vai uma base
Esse aqui й um cуdigo funcionando perfeitamente, mais pode economizar linhas em seu gamemode:
PHP код:
//Topo do gamemode
new Tutorial[MAX_PLAYERS];
//Em OnPlayerCommandText
if (strcmp("/teste", cmdtext, true, 10) == 0)
{
if(Tutorial[playerid] == 1)
{
SendClientMessage(playerid,-1,"Codigo Funcionando");
return 1;
}
}
Viu? Esse cуdigo acima estб funcionando, agora vamos economizar linhas em seu gamemode:
PHP код:
if (strcmp("/teste", cmdtext, true, 10) == 0)
{
if(Tutorial[playerid] == 1) return SendClientMessage(playerid,-1,"Cуdigo Funcionando E Otimizado!");
}
Viu a diferenзa? й basicamente isso ae man, qualquer dъvida poste ae
Re: Como se faz? -
Dragonic - 06.06.2017
Quote:
Originally Posted by ViniBorn
|
Valeu, vou testar mais tarde!
Re: Como se faz? -
MultiKill - 06.06.2017
Quote:
Originally Posted by zCyan
Com certeza vocк quer saber como otimizar seus cуdigos certo? Blz ai vai uma base
Esse aqui й um cуdigo funcionando perfeitamente, mais pode economizar linhas em seu gamemode:
PHP код:
//Topo do gamemode
new Tutorial[MAX_PLAYERS];
//Em OnPlayerCommandText
if (strcmp("/teste", cmdtext, true, 10) == 0)
{
if(Tutorial[playerid] == 1)
{
SendClientMessage(playerid,-1,"Codigo Funcionando");
return 1;
}
}
Viu? Esse cуdigo acima estб funcionando, agora vamos economizar linhas em seu gamemode:
PHP код:
if (strcmp("/teste", cmdtext, true, 10) == 0)
{
if(Tutorial[playerid] == 1) return SendClientMessage(playerid,-1,"Cуdigo Funcionando E Otimizado!");
}
Viu a diferenзa? й basicamente isso ae man, qualquer dъvida poste ae
|
Economia de linhas nгo significa um cуdigo optimizado, a ъnica diferenзa vai ser na velocidade da compilaзгo, mas essa velocidade й bem insignificante.
O compilador ignora espaзos e linhas, os dois cуdigos acima iram gerar um amx bem semelhantes a ъnica diferenзa й no retorno do comando que no segundo cуdigo retorna o valor retornado pela funзгo
SendClientMessage, se a funзгo retornar 0 o servidor vai entender que o comando nгo existe enquanto o primeiro sempre vai retornar 1.
Um cуdigo bem optimizado significa nгo desperdiзar memoria e processamento.
Exemplo de um loop que joga processamento fora:
PHP код:
for(new i; i < MAX_PLAYERS; i++)
Supondo que a definiзгo MAX_PLAYERS nгo seja alterada (o valor padrгo й 500) e tenha 5 jogadores online no servidor, esse loop vai rodar de 0 a 499, executando muito mais vezes do que deveria.
PHP код:
for(new i, j = GetPlayerPoolSize(); i <= j; i++)
Supondo que tenha 5 players online no servidor e o id mais alto й 5, o loop vai rodar de 0 a 5, rodando somente 6 vezes.
Exemplo de desperdнcio de memуria:
Й muito comum ver pessoas ao declararem uma array para formatar um mensagem para ser enviada para um jogador declarando arrays com cйlulas muito acima do que precisam.
PHP код:
new name[MAX_PLAYER_NAME], str[128];
GetPlayerName(playerid, name, sizeof name);
format(str, sizeof str, "Olб %s", name);
SendClientMessage(playerid, -1, str);
No exemplo acima foi declarado a array str com 128 cйlulas, mas na formataзгo foi usado apenas 28. Jogando fora 100 cйlulas.
PHP код:
new name[MAX_PLAYER_NAME], str[MAX_PLAYER_NAME + 4];
GetPlayerName(playerid, name, sizeof name);
format(str, sizeof str, "Olб %s", name);
SendClientMessage(playerid, -1, str);
A array str foi declarada com o valor de MAX_PLAYER_NAME (24) + 4 que seria: 23 caracteres do nome + 4 caracteres da formataзгo +
EOS (End of string).
Re: Como se faz? -
Dragonic - 06.06.2017
Quote:
Originally Posted by zCyan
Com certeza vocк quer saber como otimizar seus cуdigos certo? Blz ai vai uma base
Esse aqui й um cуdigo funcionando perfeitamente, mais pode economizar linhas em seu gamemode:
PHP код:
//Topo do gamemode
new Tutorial[MAX_PLAYERS];
//Em OnPlayerCommandText
if (strcmp("/teste", cmdtext, true, 10) == 0)
{
if(Tutorial[playerid] == 1)
{
SendClientMessage(playerid,-1,"Codigo Funcionando");
return 1;
}
}
Viu? Esse cуdigo acima estб funcionando, agora vamos economizar linhas em seu gamemode:
PHP код:
if (strcmp("/teste", cmdtext, true, 10) == 0)
{
if(Tutorial[playerid] == 1) return SendClientMessage(playerid,-1,"Cуdigo Funcionando E Otimizado!");
}
Viu a diferenзa? й basicamente isso ae man, qualquer dъvida poste ae
|
Isso nгo tem nada aver com a pergunta '-' ...
Re: Como se faz? -
zCyan - 06.06.2017
Quote:
Originally Posted by Dragonic
Isso nгo tem nada aver com a pergunta '-' ...
|
Entгo nгo sei, pois nгo deu para entender quase nada que vc pergunto '-'