Instrumentos: vazamentos e alocações (tvOS)

Atualmente, estou trabalhando em um aplicativo tvOS. Este é o meu primeiro aplicativo nativo (Swift). O aplicativo será um aplicativo de sinalização digital, usado durante eventos ou em escritórios de empresas. Uma grande diferença em comparação com um aplicativo típico no iOS / tvOS é que ele precisa ser executado praticamente 24 horas por dia, 7 dias por semana, portanto, a memória é um grande tópico para esse aplicativo. O menor vazamento acabará causando o travamento do aplicativo.

O aplicativo está constantemente percorrendo um conjunto de slides em tela cheia. Na parte inferior da tela, há um ticker com 10 artigos (atualizado a cada 10 segundos - agora durante o desenvolvimento). Abaixo está uma captura de tela do slide meteorológico, para ter uma idéia.

Atualmente, o aplicativo está travando após um período de tempo e tenho certeza de que o reduzi ao componente ticker (ao desativá-lo, o aplicativo permanece por dias). Se eu usar a predefinição "Vazamentos" em Instrumentos, obtenho o seguinte resultado: Parece que estão vazando instâncias de artigos. Estou recriando instâncias de artigo a cada 10 segundos e fornecendo-as ao componente de ticker. Eu acho que é por isso que novas instâncias vazam a cada ~ 10 segundos.

Antes de começar a usar a predefinição "Vazamentos" no Instruments, usei a predefinição "Alocações", enquanto o uso disso tudo parecia bom para mim. Mas provavelmente estou interpretando mal os resultados ...

Usando alocações: A maneira como li isso é que atualmente existem 10 instâncias de artigo na memória e 31 existem, mas são limpas agora - por isso estou seguro.

Mas o aplicativo ainda trava.

Eu li muito sobre ciclos de retenção, implementado fraco / sem dono onde eu acho que deveria.

Portanto, minha pergunta não é tanto sobre código, mas mais sobre como ler esses dados, o que significa um vazamento nesse contexto e por que vejo esses 'vazamentos' não como objetos persistentes noAlocações janela?

(os testes são feitos em vários dispositivos + simulador)

questionAnswers(2)

yourAnswerToTheQuestion