Estou usando a ferramenta ObjectAlloc da Instument na tentativa de entender o que a memória do meu aplicativo (iPhone) está fazendo e quando e onde está fazendo isso.
Eu realmente gostaria de uma explicação básica dessas estatísticas:
- Bytes ao vivo
- #Vivo
- #Transitório
- Bytes gerais
Quando estou tentando descobrir quanta memória meu aplicativo está usando, devo olhar para Live Bytes ou Overall Bytes? Isso inclui memória perdida? O que são objetos transitórios?
obrigado
Respostas:
ObjectAlloc
rastreia toda a alocação e desalocação de memória durante o tempo de execução do programa.A
Living bytes, or Net bytes
é a quantidade de memória seu aplicativo está usando no momento que você selecionar na linha do tempo. Isso incluirá memória perdida, uma vez que a memória perdida nunca é desalocada.#Living
é quantas alocações de um determinado tamanho / tipo de objeto aconteceram (e ainda estão alocadas). Isso é muito útil ao procurar vazamentos.Por exemplo, se você realizar uma ação repetidamente (como sair de um controlador de visualização modal) e perceber que
#Living
um objeto cresce na mesma quantidade a cada vez, provavelmente você está vazando esses objetos. Você pode então confirmar detalhando e vendo a linha exata de código que está alocando os objetos, e até mesmo ver o índice de tempo que cada um foi criado.Overall bytes
inclui memória que foi liberada. É útil rastrear esse número para fins de otimização de desempenho, mas não se você estiver apenas tentando ver sua pegada de memória atual ou procurar vazamentos.fonte
Explicação das estatísticas dos documentos da apple. Link para o documento
fonte