Junior — Middle
Wie bestimmt man die Anzahl der Speicherbereiche, die einer Anwendung während ihrer Laufzeit zugewiesen sind?
sobes.tech KI
Antwort von AI
Auf iOS kann man zur Bestimmung der Speichernutzung der Anwendung während ihrer Laufzeit die Xcode-Tools verwenden, z.B. Instruments mit dem Template Allocations oder Memory Graph Debugger. Diese zeigen die Menge des zugewiesenen Speichers, seine Größe und Typ.
Außerdem kann man programmgesteuert Informationen über die aktuelle Speichernutzung über die API erhalten, z.B. mit task_info aus der 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("Verwendeter Speicher: \(memoryUsed) Bytes")
}
Dieser Code gibt die Menge des vom aktuellen Programm belegten Speichers (resident size) zurück. Für eine detaillierte Analyse sind die Xcode-Tools jedoch besser geeignet.