Junior — Middle
Hoe bepaal je het aantal geheugengebieden dat aan een toepassing tijdens de uitvoering is toegewezen?
sobes.tech AI
Antwoord van AI
Op iOS, om het geheugenverbruik van de app tijdens de uitvoering te bepalen, kunt u de Xcode-tools gebruiken, bijvoorbeeld Instruments met het sjabloon Allocations of Memory Graph Debugger. Deze tonen de hoeveelheid toegewezen geheugen, de grootte en het type.
Ook kunt u programmatisch informatie over het huidige geheugenverbruik verkrijgen via de API, bijvoorbeeld met task_info uit de Mach API:
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("Gebruikt geheugen: \(memoryUsed) bytes")
}
Deze code geeft de hoeveelheid geheugen (resident size) terug die door de huidige app wordt gebruikt. Voor een meer gedetailleerde analyse zijn de Xcode-tools echter beter geschikt.