[AJUDA]Informaзхes do compilador
#14

Quote:
Originally Posted by Chefгo
Посмотреть сообщение
o correto mesmo й aparecer sу isso
pawn Код:
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase
eu quero aprender a deixar o pwn assim...
mais ta foda!

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 .
Reply


Messages In This Thread
[AJUDA]Informaзхes do compilador - by Chefгo - 28.06.2011, 12:34
Re: [Duvida]Informaзхes do compilador - by TheGarfield - 28.06.2011, 14:08
Re: [Duvida]Informaзхes do compilador - by Chefгo - 28.06.2011, 14:10
Re: [Duvida]Informaзхes do compilador - by TheGarfield - 28.06.2011, 14:23
Re: [Duvida]Informaзхes do compilador - by Dr_Pawno - 28.06.2011, 14:52
Re: [AJUDA]Informaзхes do compilador - by Chefгo - 29.06.2011, 00:39
Re: [AJUDA]Informaзхes do compilador - by Andrew_Guiga - 29.06.2011, 01:06
Re: [AJUDA]Informaзхes do compilador - by [BEP]AcerPilot - 29.06.2011, 01:38
Re: [AJUDA]Informaзхes do compilador - by Dr_Pawno - 29.06.2011, 02:06
Re: [AJUDA]Informaзхes do compilador - by The Knight - 29.06.2011, 02:07
Re: [AJUDA]Informaзхes do compilador - by lucas_mdr1235 - 29.06.2011, 12:58
Re: [AJUDA]Informaзхes do compilador - by [BEP]AcerPilot - 29.06.2011, 13:18
Re: [AJUDA]Informaзхes do compilador - by Chefгo - 29.06.2011, 13:22
Re: [AJUDA]Informaзхes do compilador - by rjjj - 29.06.2011, 14:21
Re: [AJUDA]Informaзхes do compilador - by Shadoww5 - 29.06.2011, 15:57

Forum Jump:


Users browsing this thread: 1 Guest(s)