Introduзгo:
Oi galera hoje vou postar alguns cуdigos relacionados a testes de velocidade.
Sгo cуdigos para vocк mesmo usar em seu pc e decidir qual й melhor ou pior.
Nгo й bem um Tutorial,atй porque nгo explico nada,apenas й 'Dicas' de pequenas otimizaзхes que vocк pode fazer.
Nota:
Espaços não Otimizam Nada
return Funcao(playerid) em um comando tambйm nгo otimiza nada
! e == 0 e == false sгo a mesma coisa
Codigos:
Vou colocar o mбximo de cуdigos possнvel,execute-o em seu pc e veja qual й o melhor
While x For Loop
RESULTADO: For Mais rбpido
Code:
Static x New
RESULTADO: Static mais rбpido
Code:
Max_Players x GetMaxPlayers
RESULTADO: Max_Players mais rбpido,claro
Defines x Stocks
RESULTADO: Defines,sempre que possнvel use-as
Code:
I++ x ++I
RESULTADO: ++i й pouco mais otimizado
Code:
Strlen x Eos
RESULTADO: Usando End Of String com Condicional й muito mais rбpido
Code:
Strins x Format
RESULTADO: Usando Strins й bem mais otimizado,sempre use quando puder
Code:
Como podem ver otimizaзгo em pawn existe,apesar de pawn nгo ser nada otimizado.
Porйm sempre tente fazer seu melhor,por que pawn jб й uma Palavrão bloqueado,agora se deixar mais Palavrão bloqueado ainda fode tudo.
Atй semana que vem,vou sair por um tempo,vгo postando seus testes e dicas para testes.
Atй mais.
Valeu
Oi galera hoje vou postar alguns cуdigos relacionados a testes de velocidade.
Sгo cуdigos para vocк mesmo usar em seu pc e decidir qual й melhor ou pior.
Nгo й bem um Tutorial,atй porque nгo explico nada,apenas й 'Dicas' de pequenas otimizaзхes que vocк pode fazer.
Nota:
Espaços não Otimizam Nada
return Funcao(playerid) em um comando tambйm nгo otimiza nada
! e == 0 e == false sгo a mesma coisa
Codigos:
Vou colocar o mбximo de cуdigos possнvel,execute-o em seu pc e veja qual й o melhor
While x For Loop
- Código:
#include <a_samp>
- Código:
#define maxloop (10000000) //loops para teste
- Código:
public OnFilterScriptInit()
{
//==========================================================================
new
dCount = GetTickCount(),array,i;
while (i < maxloop)
{
i++;
array++;
}
printf("[While] Functions: %d - Temp: %d",maxloop,(GetTickCount() - dCount));
//==========================================================================
new
bCount = GetTickCount(),arrei,a;
for(a = 0; a < maxloop; a++)
{
arrei++;
}
printf("[For] Functions: %d - Temp: %d",maxloop,(GetTickCount() - bCount));
//==========================================================================
return true;
}
RESULTADO: For Mais rбpido
Code:
- Código:
[13:21:56] [While] Functions: 10000000 - Temp: 486
[13:21:57] [For] Functions: 10000000 - Temp: 388
Static x New
- Código:
#include <a_samp>
#define maxloop (1000000) //loops para teste
public OnFilterScriptInit()
{
//==========================================================================
new
dCount = GetTickCount();
for(new i; i < maxloop; ++i)
{
static array;
}
printf("[Static] Functions: %d - Temp: %d",maxloop,(GetTickCount() - dCount));
//==========================================================================
new
bCount = GetTickCount();
for(new i; i < maxloop; ++i)
{
new array;
}
printf("[New] Functions: %d - Temp: %d",maxloop,(GetTickCount() - bCount));
//==========================================================================
return true;
}
RESULTADO: Static mais rбpido
Code:
- Código:
[13:23:07] [Static] Functions: 1000000 - Temp: 24
[13:23:07] [New] Functions: 1000000 - Temp: 43
Max_Players x GetMaxPlayers
- Código:
#include <a_samp>
#define maxloop (100000) //loops para teste
public OnFilterScriptInit()
{
//==========================================================================
new
dCount = GetTickCount();
for(new i; i < maxloop; ++i)
{
for(new p; p < MAX_PLAYERS; p++)
{
}
}
printf("[MaxPlayers] Functions: %d - Temp: %d",maxloop,(GetTickCount() - dCount));
//==========================================================================
new
bCount = GetTickCount();
for(new i; i < maxloop; ++i)
{
for(new p; p < GetMaxPlayers(); p++)
{
}
}
printf("[GetMaxPlayer] Functions: %d - Temp: %d",maxloop,(GetTickCount() - bCount));
//==========================================================================
return true;
}
RESULTADO: Max_Players mais rбpido,claro
- Código:
[13:26:21] [MaxPlayers] Functions: 100000 - Temp: 1064
[13:26:23] [GetMaxPlayer] Functions: 100000 - Temp: 2255
Defines x Stocks
- Código:
stock GetSAMP() return 10;
#define GetSAMP2 10
- Código:
#include <a_samp>
#define maxloop (100000) //loops para teste
public OnFilterScriptInit()
{
//==========================================================================
new
dCount = GetTickCount();
for(new i; i < maxloop; ++i)
{
printf("Is %d",GetSAMP2);
}
printf("[Defines] Functions: %d - Temp: %d",maxloop,(GetTickCount() - dCount));
//==========================================================================
new
bCount = GetTickCount();
for(new i; i < maxloop; ++i)
{
printf("Is %d",GetSAMP());
}
printf("[Stocks] Functions: %d - Temp: %d",maxloop,(GetTickCount() - bCount));
//==========================================================================
return true;
}
RESULTADO: Defines,sempre que possнvel use-as
Code:
- Código:
[13:30:04] [Defines] Functions: 100000 - Temp: 8534
[13:30:55] [Stocks] Functions: 100000 - Temp: 10971
I++ x ++I
- Código:
#include <a_samp>
#define maxloop (100000000) //loops para teste
public OnFilterScriptInit()
{
//==========================================================================
new
dCount = GetTickCount();
for(new i; i < maxloop; ++i)
{
}
printf("[++i] Functions: %d - Temp: %d",maxloop,(GetTickCount() - dCount));
//==========================================================================
new
bCount = GetTickCount();
for(new i; i < maxloop; i++)
{
}
printf("[i++] Functions: %d - Temp: %d",maxloop,(GetTickCount() - bCount));
//==========================================================================
return true;
}
RESULTADO: ++i й pouco mais otimizado
Code:
- Código:
[13:33:24] [++i] Functions: 100000000 - Temp: 2129
[13:33:26] [i++] Functions: 100000000 - Temp: 2147
Strlen x Eos
- Código:
#include <a_samp>
#define maxloop (100000000) //loops para teste
static string[64] = "Oi isto й um teste haha";
public OnFilterScriptInit()
{
//==========================================================================
new
dCount = GetTickCount();
for(new i; i < maxloop; ++i)
{
if(string[10] != '\0')
{
}
}
printf("[Eos] Functions: %d - Temp: %d",maxloop,(GetTickCount() - dCount));
//==========================================================================
new
bCount = GetTickCount();
for(new i; i < maxloop; i++)
{
if(strlen(string) > 10)
{
}
}
printf("[Strlen] Functions: %d - Temp: %d",maxloop,(GetTickCount() - bCount));
//==========================================================================
return true;
}
RESULTADO: Usando End Of String com Condicional й muito mais rбpido
Code:
- Código:
[13:46:14] [Eos] Functions: 100000000 - Temp: 4084
[13:46:23] [Strlen] Functions: 100000000 - Temp: 9799
Strins x Format
- Código:
#include <a_samp>
#define maxloop (100000) //loops para teste
static stringformat[64] = "Oi isto й um teste haha";
static stringstrins[64] = "Oi isto й um teste haha";
public OnFilterScriptInit()
{
//==========================================================================
new
dCount = GetTickCount();
for(new i; i < maxloop; ++i)
{
format(stringformat,64,"%s,oi",stringformat);
}
printf("[Format] Functions: %d - Temp: %d",maxloop,(GetTickCount() - dCount));
//==========================================================================
new
bCount = GetTickCount();
for(new i; i < maxloop; i++)
{
strins(stringstrins,",oi",strlen(stringstrins),sizeof stringstrins);
}
printf("[Strins] Functions: %d - Temp: %d",maxloop,(GetTickCount() - bCount));
//==========================================================================
printf(stringstrins);
printf(stringformat);
return true;
}
RESULTADO: Usando Strins й bem mais otimizado,sempre use quando puder
Code:
- Código:
[13:44:24] [Format] Functions: 100000 - Temp: 61
[13:44:24] [Strins] Functions: 100000 - Temp: 28
Como podem ver otimizaзгo em pawn existe,apesar de pawn nгo ser nada otimizado.
Porйm sempre tente fazer seu melhor,por que pawn jб й uma Palavrão bloqueado,agora se deixar mais Palavrão bloqueado ainda fode tudo.
Atй semana que vem,vou sair por um tempo,vгo postando seus testes e dicas para testes.
Atй mais.
Valeu
Creditos: IPSBruno