Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Os instrumentos podem ser usados ​​para rastrear vazamentos de memória em tempo real para aplicativos MVVMcross


Os instrumentos podem ser usados ​​para rastrear vazamentos de memória em tempo real para aplicativos MVVMcross


Os instrumentos, parte do Xcode, são projetados principalmente para aplicativos iOS, macOS, watchOS e TvOS. Embora seja incrivelmente eficaz para detectar vazamentos de memória nessas plataformas usando ferramentas como o instrumento de vazamentos e o depurador de gráficos de memória, seu aplicativo direto para aplicativos MVVMCROSS é limitado. O MVVMcross é uma estrutura de plataforma cruzada que permite o desenvolvimento de várias plataformas, incluindo Android e iOS.

No entanto, se você estiver desenvolvendo um aplicativo MVVMCROSS para iOS, poderá usar instrumentos para rastrear vazamentos de memória em tempo real para a parte iOS do seu aplicativo. Aqui está como:

Usando instrumentos para aplicativos iOS mvvMcross

1. Instrumentos de lançamento: comece abrindo seu projeto no Xcode e selecionando o produto> perfil. Isso lançará instrumentos.

2. Escolha o modelo de vazamentos: na caixa de diálogo Seleção de modelo, escolha o modelo de vazamentos na seção de memória. Este modelo foi projetado especificamente para detectar vazamentos de memória.

3. Execute seu aplicativo: clique no botão de gravação para começar a perfil do seu aplicativo. Interaja com o seu aplicativo como normalmente faria, especialmente focando em áreas em que você suspeita que vazamentos de memória possam ocorrer.

4. Analise os resultados: Depois de concluir suas interações, pare a gravação. Os instrumentos exibirão um gráfico mostrando o uso da memória ao longo do tempo. Se houver vazamentos de memória, você verá o uso da memória aumentar sem diminuições correspondentes quando os objetos devem ser desalocados. Abaixo do gráfico, você encontrará uma lista de blocos de memória vazados, juntamente com traços de pilha, indicando onde os vazamentos foram alocados.

5. Identifique e corrige vazamentos: use os rastreamentos da pilha para localizar a fonte dos vazamentos no seu código. Os problemas comuns incluem ciclos de retenção, onde os objetos mantêm fortes referências entre si, impedindo a localização de desalocros. Corrigir isso envolve quebrar os ciclos de retenção, geralmente usando referências fracas ou não dentes.

Limitações para plataformas não-Iios

Para aplicativos MVVMCross direcionados a plataformas que não sejam iOS (como Android), os instrumentos não podem ser usados ​​diretamente. Em vez disso, você precisaria usar ferramentas específicas da plataforma para detecção de vazamentos de memória:

- Android: use ferramentas como o Profiler de Memória do Android Studio ou bibliotecas de terceiros como LeakCanary.
- Outras plataformas: utilize ferramentas ou bibliotecas de criação de criação de memória específicas da plataforma.

Em resumo, embora os instrumentos sejam altamente eficazes para detectar vazamentos de memória em aplicativos iOS, incluindo aqueles construídos com MVVMCROSS para iOS, ele não é aplicável a plataformas que não são de Iios. Para o desenvolvimento de plataformas cruzadas, você deve usar ferramentas específicas para cada plataforma de destino.

Citações:
[1] https://www.netguru.com/blog/what-are-ios-memory-leaks-and-ow-to-detect- them
[2] https://www.reddit.com/r/rust/comments/kpsgin/how_to_find_a_memory_leak_in_a_rust_program/
[3] https://stackoverflow.com/questions/38592689/memory-leak-check-in-real-time-pplication
[4] https://www.kodeco.com/books/swiftui-cookbook/v1.0/chapters/9-finding-memory-leaks-using-instruments
[5] https://stackoverflow.com/questions/27008035/mvvmcross-memory-leak-because-of-not-disposes-viewmodels
[6] https://forums.ni.com/t5/labview/get-object-memory-leak/td-p/4276905
[7] https://forums.developer.apple.com/forums/thread/770061
[8] https://github.com/mvvmcross/mvvmcross/issues/2884