#include <a_samp>
#define maxloop   (10000000)  //loops para teste
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;
}
[13:21:56] [While] Functions: 10000000 - Temp: 486 [13:21:57] [For] Functions: 10000000 - Temp: 388
#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;
}
[13:23:07] [Static] Functions: 1000000 - Temp: 24 [13:23:07] [New] Functions: 1000000 - Temp: 43
#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;
}
[13:26:21] [MaxPlayers] Functions: 100000 - Temp: 1064 [13:26:23] [GetMaxPlayer] Functions: 100000 - Temp: 2255
stock GetSAMP() return 10;
#define GetSAMP2 10
#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;
}
[13:30:04] [Defines] Functions: 100000 - Temp: 8534 [13:30:55] [Stocks] Functions: 100000 - Temp: 10971
#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;
}
[13:33:24] [++i] Functions: 100000000 - Temp: 2129 [13:33:26] [i++] Functions: 100000000 - Temp: 2147
#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;
}
[13:46:14] [Eos] Functions: 100000000 - Temp: 4084 [13:46:23] [Strlen] Functions: 100000000 - Temp: 9799
#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;
}
[13:44:24] [Format] Functions: 100000 - Temp: 61 [13:44:24] [Strins] Functions: 100000 - Temp: 28
pawn jб й uma merda,agora se deixar mais merda ainda fode tudo.
KKKKKKKKKKKKKKKKKKKKKKKK
Code:
pawn jб й uma merda,agora se deixar mais merda ainda fode tudo. |
if(string[10] != EOS)
{
  print("й maior");
}
Impressionante o trabalho mais uma vez! Uma pergunta: Quando vocк usar 'strins? Й como (....), formato e, em seguida, vocк pode usar 'SendClientMessage?
Alйm disso, eu apreciaria isto se vocк manter a sua actualizaзгo! Obrigado novamente! |
strins(/*string que vai receber*/, /*caracteres a serem copiados*/, /*de onde comeзar*/, /*mбximo de caracteres a serem copiados*/);
new Str[128], Nome[24];
GetPlayerName(playerid, Nome, 24);
format(Str, sizeof Str, "%s foi а favela. (/favela)" Nome);
new Str[128], Nome[24];
Str = " foi а favela. (/favela)";
GetPlayerName(playerid, Nome, 24);
strins(Str, Nome, 0, 24);
Vocк tem que pensar mais tйcnicamente, vocк nгo vai usar strins pra em seguida usar SendClientMessage, vocк vai usar strins pra inserir caracteres dentro de uma string e assim poder usa-la em SendClientMessage.
Parece inъtil, mas mudando sua forma de pensar vocк colocar seu objetivo no arquivo sem precisar da ajuda de ninguйm. A funзгo do strins й inserir caracteres dentro de uma string a partir de certa posiзгo atй certa posiзao dentro mбximo de caracteres que vocк quiser: pawn Code:
pawn Code:
pawn Code:
Parвmetros: 1є Str: string que recebeu os caracteres da string Nome, ou a string Nome, entenda como preferir. 2є Nome: string contendo os caracteres a serem colocados em Str, poderia ser "Joao", por exemplo. 3є 0: posiзгo de onde comeзar a inserir 4є O ъltimo parвmetro por padrгo й o tamanho da primeira string, nesse caso foi usado o tamanho mбximo que um nick pode ter, se quiser nгo precisa colocar nada(se nгo tivesse nada seria 128 ), nгo faz diferenзa se tratando de velocidade. |
for (new pos, len = strlen(string); pos < len; pos ++)
{
}
#define maxloop (100000) //loops para teste new Velocidade[MAX_PLAYERS]; //========================================================================== if (strcmp(cmdtext, "/Velocidade", true)==0) { new dCount = GetTickCount(); for(new i; i < maxloop; ++i) { if(GetPVarInt(playerid,"Velocidade") == 1) { } } printf("[PVar] Functions: %d - Temp: %d",maxloop,(GetTickCount() - dCount)); //-------------------------------------------------------------------------- new bCount = GetTickCount(); for(new i; i < maxloop; ++i) { if(Velocidade[playerid] == 1) { } } printf("[MaxPlayers] Functions: %d - Temp: %d",maxloop,(GetTickCount() - bCount)); return 1; } [01:54:00] [PVar] Functions: 100000 - Temp: 28 [01:54:00] [MaxPlayers] Functions: 100000 - Temp: 12 //==========================================================================
if(Velocidade[i] == 1)
      {
#define maxloop   (100000)  //loops para teste
    new Velocidade[MAX_PLAYERS];
  //==========================================================================
  if (strcmp(cmdtext, "/Velocidade", true)==0)
  {
    new dCount = GetTickCount();
    for(new i; i < maxloop; ++i)
    {
      if(GetPVarInt(i,"Velocidade") == 1)
      {
      }
    }
    printf("[PVar] Functions: %d - Temp: %d",maxloop,(GetTickCount()  - dCount));
  //--------------------------------------------------------------------------
    new bCount = GetTickCount();
    for(new i; i < maxloop; ++i)
    {
      if(Velocidade[i] == 1)
      {
      }
    }
    printf("[MaxPlayers] Functions: %d - Temp: %d",maxloop,(GetTickCount()  - bCount));
    return 1;
  }
  //==========================================================================
Eu fiz todo o procedimento de otimizaзгo indicado em meu gamemode, e consegui ganhar incrнveis 0,00000000001ms de performance. Parabйns!
Espero ter ajudado. |
Eu fiz todo o procedimento de otimizaзгo indicado em meu gamemode, e consegui ganhar incrнveis 0,00000000001ms de performance. Parabйns!
Espero ter ajudado. |