[Ajuda] Global new string ou local new string!?
#1

Entгo pessoal, toda hora tenho que declarar string[100],string[128],string[60]...
Isso й muito chato, e geralmente eu declaro como 100,80,128 no minimo 50, tava pensando
Se eu declara-se essa variavel como uma variavel global em 128 eu acho que reservaria mais memoria do server, sу que pouca creio eu (leigo), mas ficaria MUITO melhor de criar os codigos, ia ficar mais limpo o gm ia perder muitas linhas e tal, queria saber a opniгo de vcs
Reply
#2

Eu jб fiz testes de velocidades, e vou mostrar aqui:

Код:
[16:34:13] [Global]: Vezes: 100000 || Tempo 6 ms
[16:34:13] [Local]: Vezes: 100000 || Tempo 10 ms
Cуdigo usado:

pawn Код:
#define MaxLoops 100000

static FuncT5;


public OnGameModeInit()
{

    // Local x Global
    new ContadorO = GetTickCount();

    for(new i = 0; i < MaxLoops; ++i)
    {
        FuncT5++;
    }

    printf("[Global]: Vezes: %d || Tempo %d ms", MaxLoops, (GetTickCount() - ContadorO));

    new ContadorP = GetTickCount();

    for(new i = 0; i < MaxLoops; ++i)
    {
        new FuncT6;
        FuncT6++;
    }

    printf("[Local]: Vezes: %d || Tempo %d ms", MaxLoops, (GetTickCount() - ContadorP));



    return 1;
}
Reply
#3

Quote:
Originally Posted by Pitter
Посмотреть сообщение
Alйm da facilidade, й bem mais fбcil.
uau...

Sobre a pergunta, use strings locais, vai te poupar muita dor de cabeзa quanto a possнveis conflitos de strings que foram mal manipuladas anteriormente.

E sobre questхes de velocidade, nгo existe diferenзa significante entre um e outro, oque aparece no log, muitas vezes й o tempo de vantagem do processador, existem bons casos e maus casos tambйm, nem sempre vai ser assim.

Abraзos.
Reply
#4

Uheuheueh, Corrigido Willian.

Mas tem certeza uma string local leva mais em conta?

Tenho 2 Gamemodes, ambos com 500 Linhas, feitos a 0, um Com variбvel locais para inserir textos, e outro com variбvel global.

Sу vi vantagem, alйm de economizar o tempo, linhas, Velocidade. Bom nгo entendi muito bem como й possнvel causar um conflitos de strings, eu mesmo uso Uma string chamada Texto, eu nгo vou usar este nome em um Gamemode, logo nгo poderб ser conflitadas.

Como assim mal manipuladas, nгo entendi, explica?
Reply
#5

Bom, entrando na conversa aqui hihihi
Por exemplo, vocк tem uma string global e a formata em um comando. Se alguйm utilizar outro comando que formate essa string, ocorrerб um conflito. Claro, й uma questгo de "sorte" isso ocorrer, mas pra evitar dores de cabeзa...
Reply
#6

Quote:
Originally Posted by Artista
Посмотреть сообщение
Bom, entrando na conversa aqui hihihi
Por exemplo, vocк tem uma string global e a formata em um comando. Se alguйm utilizar outro comando que formate essa string, ocorrerб um conflito. Claro, й uma questгo de "sorte" isso ocorrer, mas pra evitar dores de cabeзa...
Faзo isso, mas nunca deu erro, entгo й questгo de sorte mesmo. Obrigado, mas vou continuar usando Variбveis globais, mas praticidade...
Reply
#7

Quote:
Originally Posted by Pitter
Посмотреть сообщение
Uheuheueh, Corrigido Willian.

Mas tem certeza uma string local leva mais em conta?

Tenho 2 Gamemodes, ambos com 500 Linhas, feitos a 0, um Com variбvel locais para inserir textos, e outro com variбvel global.

Sу vi vantagem, alйm de economizar o tempo, linhas, Velocidade. Bom nгo entendi muito bem como й possнvel causar um conflitos de strings, eu mesmo uso Uma string chamada Texto, eu nгo vou usar este nome em um Gamemode, logo nгo poderб ser conflitadas.

Como assim mal manipuladas, nгo entendi, explica?
O uso de strings globais, exige que vocк faзa uma limpeza completa toda vez que vocк for utilizar a mesma novamente, para evitar que na sua string nova, exista elementos da string que vocк estava utilizando anteriormente.
Entгo se isto for levado em conta, й muito mais jogo vocк utilizar variбveis locais, para se livrar dessa dor de cabeзa, alйm do que isso pode contribuir para economia em questхes de kbytes no projeto final do GM, dependendo da quantidade de variбveis que vocк tenha.

Exemplo, criando uma vetor global de 5000 posiзхes e compilando vocк perceberб a diferenзa no arquivo.amx, que o peso ficou maior, do que quando vocк criou a variбvel de maneira local.

Eu uso ambas, de acordo com o contexto do meu problema, pois como eu citei acima, a velocidade nгo vai influir tanto assim sу porque todas as suas variбveis sгo globais ou locais, vai depender da ocasiгo.

Abraзos.
Reply
#8

Quote:
Originally Posted by Willian_Luigi
Посмотреть сообщение
O uso de strings globais, exige que vocк faзa uma limpeza completa toda vez que vocк for utilizar a mesma novamente, para evitar que na sua string nova, exista elementos da string que vocк estava utilizando anteriormente.
Entгo se isto for levado em conta, й muito mais jogo vocк utilizar variбveis locais, para se livrar dessa dor de cabeзa, alйm do que isso pode contribuir para economia em questхes de kbytes no projeto final do GM, dependendo da quantidade de variбveis que vocк tenha.

Exemplo, criando uma vetor global de 5000 posiзхes e compilando vocк perceberб a diferenзa no arquivo.amx, que o peso ficou maior, do que quando vocк criou a variбvel de maneira local.

Eu uso ambas, de acordo com o contexto do meu problema, pois como eu citei acima, a velocidade nгo vai influir tanto assim sу porque todas as suas variбveis sгo globais ou locais, vai depender da ocasiгo.

Abraзos.
Obrigado, pela mega explicaзгo.

Mas eu crio um vetor de [400] Posiзхes, para formatar apenas Textos formatados em ao todo meu Gamemode.

Nunca vi pedaзos de uma linha em outro, acho que nгo seja meu caso que isso aconteзa...
Reply
#9

Quote:
Originally Posted by Pitter
Посмотреть сообщение
Obrigado, pela mega explicaзгo.

Mas eu crio um vetor de [400] Posiзхes, para formatar apenas Textos formatados em ao todo meu Gamemode.

Nunca vi pedaзos de uma linha em outro, acho que nгo seja meu caso que isso aconteзa...
Й sу questгo de cuidado, se vocк nгo passou por isso й porque estб sabendo formatar e etc.

A string local vocк pode sambar nela que quando o escopo termina e ela й esvaziada e removida da memуria, entгo whatever... hehehe

Acontece nas melhores famнlias, mas oque eu falei nгo foi pra desmotivar vocк quanto ao seu uso, foi apenas opiniгo particular, e como eu mesmo disse, eu uso ambas dependendo da situaзгo.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)