Junior — Middle
Como determinar a quantidade de áreas de memória atribuídas a uma aplicação durante a sua execução?
sobes.tech IA
Resposta da IA
No iOS, para determinar o uso de memória por parte da aplicação durante a sua execução, pode usar as ferramentas do Xcode, por exemplo, Instruments com o modelo Allocations ou Memory Graph Debugger. Elas mostram a quantidade de memória alocada, o seu tamanho e tipo.
Também, pode obter informações sobre o uso atual de memória através da API, por exemplo, usando task_info da API Mach:
import MachO
import Darwin
func reportMemory() -> UInt64? {
var info = task_basic_info()
var count = mach_msg_type_number_t(MemoryLayout<task_basic_info>.size) / 4
let kerr: kern_return_t = withUnsafeMutablePointer(to: &info) {
$0.withMemoryRebound(to: integer_t.self, capacity: Int(count)) {
task_info(mach_task_self_, task_flavor_t(TASK_BASIC_INFO), $0, &count)
}
}
if kerr == KERN_SUCCESS {
return UInt64(info.resident_size)
} else {
return nil
}
}
if let memoryUsed = reportMemory() {
print("Memória utilizada: \(memoryUsed) bytes")
}
Este código devolve a quantidade de memória ocupada (tamanho residente) pela aplicação atual. No entanto, para uma análise mais detalhada, é melhor usar as ferramentas do Xcode.