Sobes.tech
Junior — Middle

Kuidas määrata kindlaks rakendusele eraldatud mäealaade arv töö ajal?

sobes.tech AI

Vastus AI-lt

iOS-is, rakenduse töö ajal mälu kasutamise määramiseks saate kasutada Xcode tööriistu, näiteks Instruments koos Allocations malliga või Memory Graph Debugger. Need näitavad eraldatud mälu kogust, selle suurust ja tüüpi.

Samuti saate programmeerimisviisil saada teavet praeguse mälu kasutamise kohta, kasutades näiteks task_info API-d Mach API-st:

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("Kasutatud mälu: \(memoryUsed) baitides")
}

See kood tagastab praeguse rakenduse kasutatava mälu koguse (resident size). Täpsemaks analüüsiks on parem kasutada Xcode tööriistu.