Junior — Middle
Ako určiť počet pamäťových oblastí pridelených aplikácii počas jej behu?
sobes.tech AI
Odpoveď od AI
Na iOS, na určenie využitia pamäte aplikáciou počas jej behu môžete použiť nástroje Xcode, napríklad Instruments s šablónou Allocations alebo Memory Graph Debugger. Tieto ukazujú množstvo pridelené pamäte, jej veľkosť a typ.
Tiež je možné programovo získať informácie o aktuálnom využití pamäte pomocou API, napríklad pomocou task_info z 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("Použitá pamäť: \(memoryUsed) bajtov")
}
Tento kód vráti množstvo pamäte (resident size), ktorú aktuálna aplikácia využíva. Pre podrobnejšiu analýzu je však lepšie používať nástroje Xcode.