[GUIA]Para consumir un poco menos recursos
#1

Desde samp 0.3a el maximo de players es 500
y al usar
pawn Код:
MAX_PLAYERS
en las variables haces una variable con capacidad de 500
muchos servers no llegan a 200 gentes
lo que yo les recomiendo es modificar el include "a_samp" en donde dice
pawn Код:
#define MAX_PLAYERS                      (500)
cambiar ese 500 por uno menor por ejemplo si mi server tiene maximo 50 players diarios ponerlo en unos 80 o 100 ya que nunca se puede saver cuantos players tendras online en el dia.



їPOR QUE CAMBIARLO O MODIFICARLO?

Ejemplo: si mi server tiene unos 40 diarios yo modificaria a 70 por ke al tener 500 definido en mi include
estoi desperdiciando 460 celdas al tener 40 jugadores jugando ya que se utiliza mucho el MAX_PLAYERS.

Imagina si tienes unas 30 variables MAX_PLAYERS estas desperdiciando muchas celdas.
MAX_PLAYERS esta definido como 500. Imagina 40 diarios jugando 30 variables
estarias desperdiciando 13800 celdas
Reply
#2

Esta bien, igualmente no tendrias que predecir el "futuro" y decir "muchos servers no llegan a 200 gentes".
Hay servers que tiene 200, 300, o hasta incluso 490 personas.
Yo me crei que ivas a postear para rebajar x ej. strings de [256] a [128].
Igualmente esta bien .. saludos
Reply
#3

Quote:
Originally Posted by TiNcH010
Посмотреть сообщение
Esta bien, igualmente no tendrias que predecir el "futuro" y decir "muchos servers no llegan a 200 gentes".
Hay servers que tiene 200, 300, o hasta incluso 490 personas.
Yo me crei que ivas a postear para rebajar x ej. strings de [256] a [128].
Igualmente esta bien .. saludos
no mencione nombres... i es la cruel verdad
Reply
#4

Quote:
Originally Posted by josta
Посмотреть сообщение
no mencione nombres... i es la cruel verdad
Cruel xD
Reply
#5

mm yo queria preguntar esto de desperdiciar celdas si puede afectar mucho por quй yo por ejemplo en mi gamemode tengo algunas variables asi
pawn Код:
new PlayerObjects[MAX_PLAYERS][MAX_OBJECTS][6];
asi que serian 500*400*6 = 1,200,000 celdas
Reply
#6

para dejar mas o menos claro esto xq muchos pensaran que es un grandisimo desperdicio de espacio.
bueno si lo es, pero cuan grande es?
cada celda (o "cell" en ingles) equivale a 4 bytes.

suponiendo que desperdiciamos unos 10.000.000 de celdas, estariamos desperdiciando 2.500.000 bytes, que equivalen a ~2441Kb. en resumen estariamos desperdiciando unos ~2.5Mb.
entonces si bien es un gran desperdicio de espacio, y si optimizamos al maximo, es mejor, tampoco es que estamos desperdiciando TANTO espacio.
Reply
#7

Una vez leн en la secciуn en ingles que en vez de usar MAX_PLAYERS, era mejor usar GetMaxPlayers y no habнa que modificar nada.. https://sampwiki.blast.hk/wiki/GetMaxPlayers
Reply
#8

Quote:
Originally Posted by the_chaoz
Посмотреть сообщение
para dejar mas o menos claro esto xq muchos pensaran que es un grandisimo desperdicio de espacio.
bueno si lo es, pero cuan grande es?
cada celda (o "cell" en ingles) equivale a 4 bytes.

suponiendo que desperdiciamos unos 10.000.000 de celdas, estariamos desperdiciando 2.500.000 bytes, que equivalen a ~2441Kb. en resumen estariamos desperdiciando unos ~2.5Mb.
entonces si bien es un gran desperdicio de espacio, y si optimizamos al maximo, es mejor, tampoco es que estamos desperdiciando TANTO espacio.
En cuestiones de memoria puede no ser mucho, pero los loops con MAX_PLAYERS son bastante comunes, y se puede llegar a ahorrar bastante procesamiento si MAX_PLAYERS es ajustado a un nъmero menor.
Recordemos tambiйn que se puede usar foreach() de ****** y nos ahorramos todo este problema.
Reply
#9

Hay muchнsimas cosas que se pueden hacer para consumir menos recursos, y a pesar que reducir MAX_PLAYERS no estб mal, no ahorra taaanto, cosas como;
- Cargar mucha informaciуn con dINI
- Poner muchas cosas en OnPlayerUpdate
son las que mбs laguean, entre otras. Pero... їpor quй?
- OnPlayerUpdate: es ejecutado bastantes veces por segundo (aprуx 20 veces por segundo cuando el player se estб moviendo) entonces supongamos que tenemos 20 jugadores, entonces OnPlayerUpdate serнa llamado 400 veces por segundo, si tenemos demasiados procesos adentro del callback laguearнa.
- dINI: funciona de la siguiente manera: para obtener una llave se abre el archivo, y se lee hasta encontrar la llave, luego se extrae el valor y es retornado por la funciуn, por eso es lento para cargar muchas llaves, si se cargara todo un archivo de una vez (como hacen algunos procesadores de INI) se ahorrarнa tener que abrir y leer el archivo por cada llave, porque el procesador de INI lo carga (lo lee una sуla vez y guarda los resultados en variables).



Quote:
Originally Posted by Zamaroht
Посмотреть сообщение
En cuestiones de memoria puede no ser mucho, pero los loops con MAX_PLAYERS son bastante comunes, y se puede llegar a ahorrar bastante procesamiento si MAX_PLAYERS es ajustado a un nъmero menor.
Recordemos tambiйn que se puede usar foreach() de ****** y nos ahorramos todo este problema.
foreach FTW.
Reply
#10

Quote:
Originally Posted by [J]ulian
Посмотреть сообщение
Una vez leн en la secciуn en ingles que en vez de usar MAX_PLAYERS, era mejor usar GetMaxPlayers y no habнa que modificar nada.. https://sampwiki.blast.hk/wiki/GetMaxPlayers
pero no puedes definir el tamaсo de un array con una funcion. x ende no puedes poner GetMaxPlayer en este caso, si en un bucle con for x ej.

Quote:
Originally Posted by Zamaroht
Посмотреть сообщение
En cuestiones de memoria puede no ser mucho, pero los loops con MAX_PLAYERS son bastante comunes, y se puede llegar a ahorrar bastante procesamiento si MAX_PLAYERS es ajustado a un nъmero menor.
Recordemos tambiйn que se puede usar foreach() de ****** y nos ahorramos todo este problema.
yo solo hablaba en terminos de espacio, obviamente q afecta el resto pero mi explicacion no lo contemplaba.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)