[Ajuda] Informaзхes ao compilar
#1

Bom meu FS de admin estava compilado normalmente, agora tambйm estб, mas ao adicionar um sistema de criaзгo de veнculos ao compilar ele dб essas informaзхes:

PHP код:
Pawn compiler 3.2.3664              Copyright (c1997-2006ITB CompuPhase
Header size
:           5964 bytes
Code size
:           329632 bytes
Data size
:          1815588 bytes
Stack
/heap size:      16384 bytesestimated maxusage=4268 cells (17072 bytes)
Total requirements2167568 bytes 
Alguйm poderia me explicar pq aparece isso, qual o motivo!?
Antes do sistema ele compilava normal enviando-me apenas essa mensagem:
PHP код:
Pawn compiler 3.2.3664              Copyright (c1997-2006ITB CompuPhase 
Alguйm poderia me explicar se tem algo errado. thks.
Reply
#2

Sim tem algo errado, vocк acaba de exceder o limite de memуria designado.

Existem duas formas de concertar isto, a forma preguiзosa(que eu nem vou ensinar como fazer) e a forma correta, entгo vamos lб.

Este erros tem algumas causas como:
  • Recursгo(Nгo foi o seu caso)
    • PHP код:
      main()
      {
          new var = 
      cellmax;
          
      Funcao(var);
      }
      Funcao(int)
      {
          --
      int;
          if(
      int 0)
              return 
      Funcao(int);
          return 
      true;

  • Arrays com cйlulas demais
    • PHP код:
      #define Celulas 3_000
      new Array[Celulas][Celulas][Celulas]; 
  • Retorno de grande quantidade de cйlulas
    • PHP код:
      main()
      {
          
      printf("%s"funcao());
      }
      funcao()
      {
          
      #define Celulas 5_000
          
      new array[Celulas];
          return array;

No seu caso entгo foi o segundo, ou o terceiro exemplo. Pode ter sido apenas um erro(terceiro), ou vocк realmente necessita de muita memуria, no caso aconselho a achar uma outra alternativa, vocк pode fazer boas leituras aqui.
[Tutorial] Sparse arrays
[Tutorial] How to use #pragma
[Tutorial] Why you shouldn't make your strings 256 cells big

Um mйtodo fбcil que descobri recentemente de como encontrar mais facilmente sнmbolos(funзхes/variбveis) que consomem muito da stack, й compilar o gamemode com -r, e depois encontrar no arquivo xml os maiores valores em stacksize.
Se vocк quiser se aprofundar no assunto aqui tem um manual completo: pawn-imp.pdf
Reply
#3

Se vocк tiver um backup de ambos os sistemas, compile-os separadamente para ver se a mensagem й exibida para algum deles .



Se nгo aparecer, o compilador estб indicando que a memуria de variбveis locais temporбrias (stack ou pilha de dados) provavelmente serб sobrecarregada na execuзгo do script. Entгo, os cуdigos teriam que ser unidos de modo a evitar alocaзхes sucessivas de memуria temporбria, sem no entanto alterar a funcionalidade do resultante.



Espero ter ajudado .
Reply
#4

Obrigado pelas respostas, depois vou dб uma lida..
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)