Sobes.tech
Junior — Middle

Come determinare il numero di aree di memoria assegnate a un'applicazione durante il suo funzionamento?

sobes.tech AI

Risposta dell'AI

Su iOS, per determinare l'uso della memoria da parte dell'applicazione durante il suo funzionamento, è possibile utilizzare gli strumenti di Xcode, ad esempio, Instruments con il modello Allocations o Memory Graph Debugger. Questi mostrano la quantità di memoria allocata, le sue dimensioni e il tipo.

Inoltre, è possibile ottenere informazioni sull'uso attuale della memoria tramite l'API, ad esempio usando task_info dell'API Mach:

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("Memoria usata: \(memoryUsed) byte")
}

Questo codice restituisce la quantità di memoria occupata (resident size) dall'applicazione corrente. Tuttavia, per un'analisi più dettagliata, è meglio usare gli strumenti di Xcode.