SA-MP Forums Archive
[Ajuda] Oque й isso ? - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Oque й isso ? (/showthread.php?tid=418478)



Oque й isso ? - iSkyFree - 24.02.2013

Nгo vou negar que foi um GM que eu baixei na net, mas sу quero saber oque sгo essas coisas ao compilar.

Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

Header size: 12140 bytes
Code size: 2399276 bytes
Data size: 2198812 bytes
Stack/heap size: 16384 bytes; estimated max. usage: unknown, due to recursion
Total requirements: 4626612 bytes

1 Warning.


Re: Oque й isso ? - Joao Pedro - 24.02.2013

Se eu nгo me engano isso acontece quando vocк aloca muitas cйlulas para suas variбveis. Como se fosse um aviso de que vocк estб alocando muita memуria... Nгo tenho certeza...


Re: Oque й isso ? - Jefferson Santos - 24.02.2013

Processamento da compilaзгo do GameMode!


Re: Oque й isso ? - Gii - 24.02.2013

Quote:
Originally Posted by rjjj
Посмотреть сообщение
Bem, vou lhe explicar como que ocorre, assim entenderб e seu problema serб resolvido, claro, se estiver disposto .




Os "dados" que sгo processados quando o GM й rodado no host, sгo, dentro do AMX, chamados de cells.




Obs: 1 "Cell de uma Array" equivale б 1 Cell do AMX, isso devido ao mesmo peso de 4 bytes .




Todas as variбveis, funзхes, callbacks, entre outros (ou seja, todo o cуdigo Pawn ), apуs a compilaзгo, ganham cells correspondentes no AMX .




Vale ressaltar que, as cells nгo sгo o ъnico fator que influencia no "tamanho do AMX", hб tambйm o tamanho do texto (cуdigos) digitado pelo programador no pawno, etc .




Bem, agora veja sua imagem:




Код:
Header size:           4860 bytes
Code size:           326720 bytes
Data size:          1425028 bytes
Stack/heap size:      16384 bytes; estimated max. usage=4074 cells (16296 bytes)
Total requirements: 1772992 bytes



E, o termo em vermelho, corresponde ao tamanho de cells do AMX que seu GM produz.





Aн que estб , quando a quantidade de cells que seu GM produzirб chega perto do "tamanho do total de cells para que nгo haja risco de excesso", o compilador comeзa a mostrar a quantidade de cells , que й o que estб acontecendo com vocк, Chefгo .




Se me lembro bem, esse "tamanho prуximo ao tamanho para que nгo haja risco de excesso" й de 14653 bytes .



A diretiva #pragma dynamic define esse tamanho .







Por fim, como evitar que o tamanho de cells produzidas chegue prуximo desse limite ? :





Resposta: Evite o a criaзгo desnecessбria de cells de arrays, exemplo:


pawn Код:
new Tenso[MAX_PLAYERS];

Nгo hб necessidade de usar o sнmbolo/macro MAX_PLAYERS (que equivale б 500) se seu servidor tiver apenas 50 slots por exemplo .


Como otimizaria nesse caso:


pawn Код:
new Tenso[50];


Outro Exemplo:


pawn Код:
static string[128];
format(string,128,"LoL");

Para que criar uma string de 128 cells quando a string tem apenas 3 caracteres ? .



Como otimaria nesse caso:


pawn Код:
static string[4];
format(string,4,"LoL");


Fazendo essas otimizaзхes, o o GM/FS a mensagem desapacerб da melhor maneira .



Ou, se preferir, use #pragma dynamic para forзar o compilador б nгo evidenciar o problema, que nгo й a melhor opзгo devido aos problemas que podem acontecer, como citei antes .




Espero ter ajudado .
______


Re: Oque й isso ? - Joao Pedro - 24.02.2013

Entгo й mais ou menos o que falei, resumidamente


Re: Oque й isso ? - iSkyFree - 24.02.2013

Muito obrigado, agora intendi pessoal.