HotPotato Posted January 2, 2021 Share Posted January 2, 2021 Tem uma coisa que anda me comovendo, quando nós criamos um elemento (qualquer que seja, ex: checkpoint ) e atribuímos a ele um evento, se destruirmos este elemento (destroyElement) o evento ainda precisa ser apagado? visto que o elemento em si não existe mais... fico pensando se o servidor "guardaria" esses eventos e a memória começar a aumentar por conta de não estar dando dispose deles... tipo quando você faz uma Query e você não da dbFree para liberar a query .. vai gerando um gargalo. Pergunto pois em outras linguagens, como o C#, eventos precisam ser desvinculados pois ainda podem ser chamados... mas no MTA, apesar dele não ser "chamavél" será que pode estar lá ainda? podendo gerar impacto na memória ao longo prazo? A duvida é se eu preciso dar "removeEventHandler" ou o destroyElement já basta? Link to comment
Otavio Posted January 3, 2021 Share Posted January 3, 2021 Creio eu que nao tem necessidade, mas eventos como "onClientRender" sao necessarios fechar, por quando renderizam uma tabela ou algo, caso nao removem estes eventos as tabelas vao ficar aberto ate que a resource seja reiniciado ou coisa do tipo Link to comment
HiroShi Posted January 5, 2021 Share Posted January 5, 2021 On 01/01/2021 at 22:33, HotPotato said: Tem uma coisa que anda me comovendo, quando nós criamos um elemento (qualquer que seja, ex: checkpoint ) e atribuímos a ele um evento, se destruirmos este elemento (destroyElement) o evento ainda precisa ser apagado? visto que o elemento em si não existe mais... fico pensando se o servidor "guardaria" esses eventos e a memória começar a aumentar por conta de não estar dando dispose deles... tipo quando você faz uma Query e você não da dbFree para liberar a query .. vai gerando um gargalo. Pergunto pois em outras linguagens, como o C#, eventos precisam ser desvinculados pois ainda podem ser chamados... mas no MTA, apesar dele não ser "chamavél" será que pode estar lá ainda? podendo gerar impacto na memória ao longo prazo? A duvida é se eu preciso dar "removeEventHandler" ou o destroyElement já basta? isso vai mudar se for um elemento criado por você ou um já do MTA como: (player, object, vehicle etc..) agora um marker por ex: você cria um marker com a váriavel 'MarkerTeste', e cria um evento 'onMarkerHit' ultilzando o 'MarkerTest' é óbvio que se o 'MarkerTeste' vou destruido o evento vai avisar que não está achando ele gerando um ERROR Link to comment
ber Posted January 5, 2021 Share Posted January 5, 2021 45 minutes ago, HiroShi said: isso vai mudar se for um elemento criado por você ou um já do MTA como: (player, object, vehicle etc..) agora um marker por ex: você cria um marker com a váriavel 'MarkerTeste', e cria um evento 'onMarkerHit' ultilzando o 'MarkerTest' é óbvio que se o 'MarkerTeste' vou destruido o evento vai avisar que não está achando ele gerando um ERROR Isso já foi testado por você? Porque pela lógica, se não tem mais o marker, não tem como o evento ser acionado. Link to comment
LucasST Posted January 5, 2021 Share Posted January 5, 2021 6 hours ago, HiroShi said: isso vai mudar se for um elemento criado por você ou um já do MTA como: (player, object, vehicle etc..) agora um marker por ex: você cria um marker com a váriavel 'MarkerTeste', e cria um evento 'onMarkerHit' ultilzando o 'MarkerTest' é óbvio que se o 'MarkerTeste' vou destruido o evento vai avisar que não está achando ele gerando um ERROR Já fiz testes em empregos que fiz, após destruir o marker não ocorreu nenhum erro mesmo com o evento ainda adicionado. Link to comment
HiroShi Posted January 5, 2021 Share Posted January 5, 2021 3 hours ago, LucasST said: Já fiz testes em empregos que fiz, após destruir o marker não ocorreu nenhum erro mesmo com o evento ainda adicionado. mas aí o evento onMarkerHit ficará lá sem sentido algum. 9 hours ago, ber said: Isso já foi testado por você? Porque pela lógica, se não tem mais o marker, não tem como o evento ser acionado. isto é apenas um ex. Link to comment
Boechat Posted January 6, 2021 Share Posted January 6, 2021 On 01/01/2021 at 22:33, HotPotato said: Tem uma coisa que anda me comovendo, quando nós criamos um elemento (qualquer que seja, ex: checkpoint ) e atribuímos a ele um evento, se destruirmos este elemento (destroyElement) o evento ainda precisa ser apagado? visto que o elemento em si não existe mais... fico pensando se o servidor "guardaria" esses eventos e a memória começar a aumentar por conta de não estar dando dispose deles... tipo quando você faz uma Query e você não da dbFree para liberar a query .. vai gerando um gargalo. Pergunto pois em outras linguagens, como o C#, eventos precisam ser desvinculados pois ainda podem ser chamados... mas no MTA, apesar dele não ser "chamavél" será que pode estar lá ainda? podendo gerar impacto na memória ao longo prazo? A duvida é se eu preciso dar "removeEventHandler" ou o destroyElement já basta? O ideal é que use os dois para que o evento não fique ocupando memória do seu servidor sem necessidade, mas é coisa mínima. Erro não vai dar, a não ser que você use o checkpoint para alguma coisa na função do evento e você, de alguma outra maneira, chame essa função. Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now