Sobes.tech
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")
}