Por que mi gamemode compila asн?
#1

Hola a todos, hace un tiempo al compilar en mi gamemode me salia la linea bien, de "Pawn compiler ..." de un tiempo para acб (sin darme cuenta) me compila de la siguiente manera:

Код:
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase

Header size:           4928 bytes
Code size:           469904 bytes
Data size:           691868 bytes
Stack/heap size:      16384 bytes; estimated max. usage=4485 cells (17940 bytes)
Total requirements: 1183084 bytes
їPor quй? їcуmo hago para que vuelva a compilar normal como antes?

Gracias por leer, regards.
Reply
#2

Eso es normal, es que Pawn debe usar mбs memoria, pero da igual
Reply
#3

Quote:
Originally Posted by Goncho28
Посмотреть сообщение
Eso es normal, es que Pawn debe usar mбs memoria, pero da igual
No da igual puede ocacionar errores graves ya que la memoria es sobreescrita.
Reply
#4

їHay algъn programa o algo que sirva para detectar lo que provoca esto?
Reply
#5

Quote:
Originally Posted by Daniel-92
Посмотреть сообщение
No da igual puede ocacionar errores graves ya que la memoria es sobreescrita.
їCuбles son las posibilidades? 1 en 2000 millones tal vez? creo que ni eso... compilando como el le llama "normal" sin esos mensajes corres el mismo riesgo de tener un error mбs o menos.
Reply
#6

Quote:
Originally Posted by Goncho28
Посмотреть сообщение
їCuбles son las posibilidades? 1 en 2000 millones tal vez? creo que ni eso... compilando como el le llama "normal" sin esos mensajes corres el mismo riesgo de tener un error mбs o menos.
Creess... si no sabes no vengas a confundir a la gente, este es un fallo muy comъn, trata de compilar en modo debug 3 usando crashdetect en tu gamemode y estoy seguro q saltaran varias advertencias de Stack/heap collision despues por no poner caso a estos errores es que andan diciendo q sus sistemas se les bugean que no carga tal cosa etc.

Te doy un ejemplo sencillo
pawn Код:
public OnFilterScriptInit() {
    printf("PRINT1 || MEMORIA DISPONIBLE: %d",heapspace()/4);
    new string[4096];
    printf("PRINT2 || MEMORIA DISPONIBLE: %d",heapspace()/4);
}
Y ahora porquй crees que no se ve el print 2?
Reply
#7

No tengo ningъn string con tantas celdas, el que mбs tiene son 1600 (realmente necesarias) y antes aъn teniendo йste compilaba con una sola linea
Reply
#8

El caso es que ese error ocurre al superar los 4096 en un public, podes tener por ejemplo 16 arrays de 256 de espacio cada uno y te va a generar el mismo error, aveces es necesario utilizar muchas celdas sin oportunidad de optimizar en este caso es recomendable aumentar la memoria colocando esto arriba del script #pragma dynamic TAMAСO en donde dice tamaсo le cambias a tus necesidades (por defecto es 4096) podes probar con 5000 si sigue saliendo le aumentas mбs.
Reply
#9

Gracias, con 5000 bastу, pero ya esto no causara alguna consecuencia? me refiero a usar eso en lugar de buscar lo que provocaba la compilaciуn larga y borrarlo o tratar de solucionarlo
Reply
#10

Si no me equivoco, usar lo que dijo Daniel, solo implicara usar un poco mбs de memoria.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)