Junior — Middle
Hogyan határozható meg az alkalmazás futása közben lefoglalt memória területek száma?
sobes.tech MI
Válasz az MI-től
iOS-en az alkalmazás futása közben a memóriahasználat meghatározásához használhatja az Xcode eszközeit, például az Instruments-et a Allocations sablonnal vagy a Memory Graph Debugger-t. Ezek megmutatják az allokált memória mennyiségét, méretét és típusát.
Emellett programozottan is lekérheti a jelenlegi memóriahasználatot az API-n keresztül, például a Mach API task_info függvényével:
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("Használt memória: \(memoryUsed) bájt")
}
Ez a kód visszaadja az aktuális alkalmazás által használt memória mennyiségét (resident size). Részletesebb elemzéshez azonban az Xcode eszközei jobbak.