[AJUDA]Informaзхes do compilador
#1

Code:
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase

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
isso nгo estava aparecendo no meu gm ate eu iniciar algums sistemas considerados pesados...
mais eu ja vi varios gm com muitos sistemas pesados e sem essas informaзхes.
no caso as informaзхes sгo essa.
Code:
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
ja tentei de tudo para tirar isso.
pesquisei no forum e nгo achei nada a respeito...
alguem sabe como tira isso do gm ?
Reply
#2

jб tive este problema.
isto й o desperdнcio de cells que o prуprio compilador nгo suporta.

para corrigir usas:
pawn Code:
#pragma dynamic 4074
ou aprenda economizar cells.
...
Reply
#3

certo garfield...
mais no caso tem ali o numero q vc uso para definir q й 4074
da onde eu tiro esse numero ?
Reply
#4

Quote:
Originally Posted by Chefгo
View Post
certo garfield...
mais no caso tem ali o numero q vc uso para definir q й 4074
da onde eu tiro esse numero ?

Quote:
Originally Posted by Chefгo
View Post
[code]
Stack/heap size: 16384 bytes; estimated max. usage=4074 cells (16296 bytes)
[code]
....
Reply
#5

Isso й um erro?
Reply
#6

eu fis isso garfield...
mais mesmo assim ta dando esse erro....
Quote:
Originally Posted by Dr_Pawno
View Post
Isso й um erro?
sim
Reply
#7

LoL nem sabia que isso era erro e muito menos que fosse importante :O ainda bem que no meu gm nгo aparece isso.
Reply
#8

Nгo, isso nгo й erro. Erro й o que impede um cуdigo de ser compilado, isso й um aviso de que seu cуdigo estб muito 'pesado'. O que causa isso й tamanhos muito grandes em arrays, como:

pawn Code:
new string[256];
Vamos supor que vocк usaria essa string para formatar uma mensagem e mandar no chat. Para que 256 se o prуprio chat do samp sу suporta 128? Й isso, resumidamente.
Reply
#9

LoL eu troquei as celulas das strings/tmp/result do OnPlayerCommandText q tava em 256 pra 128 e compilo + rapido e nгo apareceu esse treco ae .-.
Reply
#10

Dependendo do sistema, temos de ver o nъmero de cells que iremos usar.
Caso faзa isto:
PHP Code:
new sStr128 ];
formatsStrsizeofsStr ), "%s disse oi"true ) ) 
Ele sу ira usar :
PHP Code:
 %24 celdas
 disse um oi 
(contando com os espaзos)
Nullo ((\n)) - 
24 + 9 + 1 = 34

O resto das cells atй 128 irб armazenar na memуria do gamemode(pensando ele, dependendo do nъmero de linhas e funзхes) atй certo ponto que acontece o mesmo no compilador.
Por isso й que eu uso sempre apenas uma vez criando a array sStr(string), no topo do gamemode.

Nгo й obrigatуrio ser isto que eu disse, pode ser outras coisas... no caso que o garfield falou!
Reply
#11

Quote:
Originally Posted by lucas_mdr1235
Посмотреть сообщение
pawn Код:
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase

Header size:           8812 bytes
Code size:          1558760 bytes
Data size:          1229320 bytes
Stack/heap size:      16384 bytes; estimated max. usage: unknown, due to recursion
Total requirements: 2813276 bytes
o meu ta certo ? qual e o certo quando compila se o meu tiver errado posta um exemplo ai !
me respondem se nao tiver serto como e o carreto ?
Reply
#12

Nгo й que estб errado, й que nгo estб "o melhor possнvel". Й sу diminuir as arrays (que vгo ser usadas em textos no chat principalmente) para 128 ou menos, dependendo do uso, que isso deverб desaparecer. Isso nada mais й do que um aviso de que tem muita memуria sendo gasta а toa.
Reply
#13

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!
Reply
#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
#15

Mais alguma duvida ?

https://sampforum.blast.hk/showthread.php?tid=55261
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)