Sobes.tech
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.