Junior — Middle
De que formas é possível detectar uma fuga de memória sem usar o gráfico de memória?
sobes.tech IA
Resposta da IA
Fugas de memória no iOS podem ser detectadas sem usar o gráfico de memória das seguintes maneiras:
- Uso da ferramenta Instruments — Leaks: Permite detectar automaticamente fugas durante a execução da aplicação.
- Monitorização do consumo de memória: Acompanhamento do aumento do consumo de memória no Debug Navigator do Xcode ou através de comandos de consola (por exemplo,
vm_stat). Se a memória estiver a crescer constantemente sem libertação, pode haver uma fuga. - Registo e análise do código: Verificação dos locais onde os objetos são criados, especialmente com referências fortes (strong), e onde deveriam ser libertados.
- Uso de referências weak e unowned: A aplicação correta de referências fracas ajuda a evitar ciclos de retenção.
- Testes com XCTest: Pode-se escrever testes que verificam se os objetos são desinicializados.
Exemplo de um teste simples de desinicialização:
class MyClass {}
func testDeinit() {
var object: MyClass? = MyClass()
weak var weakObject = object
object = nil
assert(weakObject == nil, "O objeto não foi desinicializado — fuga possível")
}