Ho una quantità significativa di risorse esterne che devo caricare. Ci vogliono circa 5 minuti per caricare completamente (circa 16 gigabyte di dati). Questi sono fondamentalmente modelli di immagine di terze parti che devo deserializzare. Quindi li uso nella mia applicazione per elaborare le immagini. Vengono tutti usati e vengono usati spesso.
Idealmente mi piacerebbe precaricarli una volta così che quando l'altra applicazione viene chiusa e riaperta, non è necessario caricare nuovamente tutte le immagini. Qual è la migliore pratica per creare un preloader di memoria che possa condividere queste risorse con un altro processo?
Soluzioni
Gli approcci che ho trovato sono:
RAMDisk: questo rende i dati molto più facili da accedere e manipolare. Funziona bene poiché sto solo leggendo i file una volta all'avvio per deserializzarli. Le modifiche non influiscono affatto sul programma.
File mappati in memoria: questo approccio è particolarmente adatto per operazioni che comprendono la scrittura, lo streaming di dati che si adattano a blocchi di dimensioni fisse o strutture di dati a dimensione fissa.