09/06/2021 22:17
(Esta mensagem foi modificada pela última vez a: 09/06/2021 22:19 por willttoonn.)
Desempenho de um gamemode é medido não por linha ou por tamanho compilado e sim pela sua utilização. Meu gamemode passa fácil de 350.000 linhas juntando todas os arquivos e acredito que seja um dos mais pesados sendo executados no SA-MP, inclusive só roda em um desempenho aceitável se tiver em overclock.
Pontos importantes para um gamemode enxuto, os quais eu aplico no meu:
- Elimine totalmente o OnPlayerUpdate e substitua as suas funções por Timers de 500ms até 1,5s.
- Utilize a include foreach para otimizar loops envolvendo jogadores, a include trabalha com um dinamismo que apenas checa jogadores legitimamente conectados, se houver 50 jogadores, ela só vai verificar os 50 jogadores e não os 150 que são o limite de slot, inclusive é superior a função nativa de PoolSize.
- Carregamento de dados brutos (fixos do servidor e estáticos) devem ocorrer apenas quando o servidor iniciar, os dados de players devem carregar e descarregar com o Connect e Disconnect do player, respectivamente.
- Utilize um gerenciador de comandos, eu recomendo o ZCMD ou Pawn.CMD (o qual utilizo atualmente).
- Se você pretende hospedar o servidor por conta própria, utilize o sistema linux (centOS ou Ubuntu) para conseguir 100% de desempenho destinado ao SA-MP. Ainda na parte de hospedagem, se ele for usar MySQL, pegue uma hospedagem com no mínimo 4gb e 3 núcleos, o SA-MP é singlecore e portanto um dos 3 núcleos vai ser dele apenas e os outros dois para o MySQL que poderá ter picos de processamento, não afetando o núcleo que o SA-MP está.
Pontos importantes para um gamemode enxuto, os quais eu aplico no meu:
- Elimine totalmente o OnPlayerUpdate e substitua as suas funções por Timers de 500ms até 1,5s.
- Utilize a include foreach para otimizar loops envolvendo jogadores, a include trabalha com um dinamismo que apenas checa jogadores legitimamente conectados, se houver 50 jogadores, ela só vai verificar os 50 jogadores e não os 150 que são o limite de slot, inclusive é superior a função nativa de PoolSize.
- Carregamento de dados brutos (fixos do servidor e estáticos) devem ocorrer apenas quando o servidor iniciar, os dados de players devem carregar e descarregar com o Connect e Disconnect do player, respectivamente.
- Utilize um gerenciador de comandos, eu recomendo o ZCMD ou Pawn.CMD (o qual utilizo atualmente).
- Se você pretende hospedar o servidor por conta própria, utilize o sistema linux (centOS ou Ubuntu) para conseguir 100% de desempenho destinado ao SA-MP. Ainda na parte de hospedagem, se ele for usar MySQL, pegue uma hospedagem com no mínimo 4gb e 3 núcleos, o SA-MP é singlecore e portanto um dos 3 núcleos vai ser dele apenas e os outros dois para o MySQL que poderá ter picos de processamento, não afetando o núcleo que o SA-MP está.