Sobes.tech
Junior — Middle

Kako odrediti broj memorijskih oblasti dodeljenih aplikaciji tokom njenog rada?

sobes.tech АИ

Одговор од АИ

Na iOS, za određivanje korišćenja memorije od strane aplikacije tokom njenog rada, možete koristiti alate Xcode-a, na primer, Instruments sa šablonom Allocations ili Memory Graph Debugger. Oni prikazuju količinu dodeljene memorije, njen veličinu i tip.

Takođe, možete programatski dobiti informacije o trenutnom korišćenju memorije koristeći API, na primer, koristeći task_info iz Mach API-ja:

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("Koristi memoriju: \(memoryUsed) bajta")
}

Ovaj kod vraća količinu memorije (resident size) koju koristi trenutna aplikacija. Za detaljniju analizu, ipak je bolje koristiti alate Xcode.