[Include] MapAndreas Pawn Cache
#1

MapAndreas sem dъvidas й um dos lanзamentos mais interessantes do SA:MP nos ъltimos tempos, contudo, hб problemas em especial de memуria, que fazem torna-lo um script bastante pesado SEM CACHE para execuзгo e um plugin bastante pesado COM CACHE para memуria.


Servidores com quantidades absurdas de cуdigos requerem uma maior velocidade de processamento nos cуdigos. Й por este motivo que existe o cache da MapAndreas. Contudo, em plugin mesmo em Cache a velocidade de MapAndreas talvez nгo seja tгo satisfatуria.


Pensando assim. E pegando a funзгo de RyDeR', modifiquei algumas arrays do SA:MP para deixar o MapAndreas Cache puramente em Pawn. Dessa forma o acesso aos dados й praticamente instantвneo, podendo usar em um timer de atй 1 ms sem surtir lags no servidor. Claro que este plugin ocuparб MUITA memуria. Algo superior a 70 megabytes, mas й algo razoavelmente baixo para os computadores atuais.




Vantagem

Bem, memуria nгo vai poupar, e admito que as vantagens vгo ser sу na parte de execuзгo do cуdigo que poderб ser drбstica mente alterada. Ou seja, isto permite vocк a colocar este cуdigo em OnPlayerUpdate por exemplo, algo que antes era atй desaconselhбvel.




Resultados

Lembrando que estou usando o plugin no modo cache, se comparar o plugin fora do modo cache, seria um absurdo de velocidade diferencial, arriscaria dizer umas mil vezes mais rбpido, literalmente.


Quote:

[22:57:42] Tempo de execuзгo Pawn Cache: 17 ms
[22:57:42] Tempo de execuзгo Plugin: 227 ms



Isso dб no mнnimo umas dez vezes mais rбpido




Porque criei?

No servidor zumbis, eu precisava de verificaзхes rбpidas no MapAndreas, e apenas o plugin com cache nгo estava dando conta, por isto tive que emular o arquivo no Pawn, que o acesso serб mais rбpido por conta de registra tudo numa variбvel global.




Desvantagens

Ocupa muita memуria, apesar de incrнvel velocidade.
Demora logo na inicializaзгo para poder ler o MapAndreas e passar para memуria Pawn.
A precisгo й um pouco diminuida por conta do floatround, diferencial de ~1.0 em xy, algo aceitбvel






Modo de uso

Apenas retire o MapAndreas.inc e coloque este cуdigo no lugar dele, ele automбticamente jб substitui todas funзхes do plugin por padrгo.


http://pastebin.com/8pdedaq2


Agradeзa!
Reply
#2

@first

top


Eu nгo utilizava o plugin por conta disso, nгo gostava do desempenho do plugin. Agora com uma versгo em pawn com cache fica muito bem aceitбvel ao meu projeto.

Obrigado e +rep.
Reply
#3

Bom , como vocк mesmo disse , teremos velocidade , mais teremos tambйm um pouco menos de precisгo e tambйm pesarб mais :X.

Parabйns cara

Nunca precisei usar o MapAndreas , faz um tutorial :3
Reply
#4

So й uma pena perder precisгo ..

parabens bom trabalho.
Reply
#5

Testei, em minha opiniгo й inviбvel graзas a demora intensa de carregar o mapa, eu aguardei uns 3 minutos e fechei o servidor, me coloquei na situaзгo de estar programando algo com isso incluso, se cada vez que eu precisar ligar/reiniciar o servidor pra testar demorar mais que 5 min vou levar um tempo intragбvel pra desenvolver um sistema mesmo que seja pequeno.
Reply
#6

Quote:
Originally Posted by CyNiC
Посмотреть сообщение
Testei, em minha opiniгo й inviбvel graзas a demora intensa de carregar o mapa, eu aguardei uns 3 minutos e fechei o servidor, me coloquei na situaзгo de estar programando algo com isso incluso, se cada vez que eu precisar ligar/reiniciar o servidor pra testar demorar mais que 5 min vou levar um tempo intragбvel pra desenvolver um sistema mesmo que seja pequeno.
Isso й verdade Alan, й um loop de 6000 * 6000, ou seja 36 milhхes, pode demorar alguns minutos pra carregar mesmo, depende da sua maquina.

Valeu pela opiniгo, abraзos!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)