Come aprire un file MBOX da 50 GB
I file MBOX grandi non mandano in crash i lettori perché sono danneggiati: li mandano in crash perché quasi tutti i lettori caricano prima l'intero file in memoria. Cosa cambiano un parser in streaming e un indice, con numeri veri.
Usa un lettore che scorra il file in streaming invece di caricarlo. Con uno di quelli, una casella da 50 GB con circa mezzo milione di messaggi si apre in meno di cinque minuti, resta sotto i 600 MB di RAM e da lì in poi si riapre in meno di un secondo. Senza, la dimensione del tuo file è irrilevante: il lettore crollerà comunque da qualche parte tra i 500 MB e i 2 GB.
Perché tutto il resto si arrende?
Perché il modo più semplice di scrivere un lettore di posta è analizzare il file, costruire in memoria l’elenco dei messaggi e mostrarlo. In fase di test funziona benissimo, visto che la casella di prova pesa 40 MB.
Poi qualcuno apre un’esportazione di Gmail. Adesso il parser vorrebbe tenere in RAM mezzo milione di messaggi tutti insieme, il processo gonfia oltre quello che la macchina ha, e tu ti ritrovi una rotellina che gira all’infinito, un crash o — peggio di tutto — una finestra che compare dopo venti minuti e singhiozza a ogni clic.
Il file non c’entra. Un MBOX da 50 GB è un MBOX perfettamente ordinario: il formato non ha un limite di dimensione e non l’ha mai avuto. Ad avere un limite è l’idea che tutto stia in memoria.
Cosa vuol dire davvero «streaming»
Un parser in streaming percorre il file a piccoli pezzi — Mbox Viewer usa un buffer da 1 MB — e registra dove comincia ogni messaggio invece di conservare il messaggio stesso. Il consumo di memoria dipende da quanti messaggi ci sono, non da quanto sono grandi, e una cache tiene a portata quei pochi che stai davvero leggendo.
La conseguenza pratica: aprire un archivio da 50 GB costa più o meno la stessa RAM che aprirne uno da 500 MB. I numeri che pubblichiamo, dalla pagina delle funzionalità:
| Dimensione | Messaggi | Prima apertura | Riapertura | RAM |
|---|---|---|---|---|
| 500 MB | ~5.000 | < 5 sec | < 1 sec | < 100 MB |
| 5 GB | ~50.000 | < 30 sec | < 1 sec | < 200 MB |
| 50 GB | ~500.000 | < 5 min | < 1 sec | < 600 MB |
Perché la seconda apertura è immediata
Perché quella prima passata produce qualcosa che vale la pena conservare: un indice binario con il punto in cui comincia ogni messaggio. Riaprire vuol dire caricare l’indice, non rileggere 50 GB.
L’indice è validato con SHA-256, così se la casella cambia sotto di lui — hai sostituito il file, o ci hai accodato qualcosa — l’app se ne accorge e lo ricostruisce, invece di mostrarti un elenco vecchio. Vive fuori dalla tua casella, che resta identica byte per byte.
Cinque minuti una volta sola, un secondo tutte le altre. Per un archivio che consulti ogni tanto nel giro di anni, quel rapporto è tutta la differenza tra un file che usi e un file che eviti.
La ricerca funziona ancora, a quelle dimensioni?
Sì, ed è il motivo per cui vale la pena aprirlo. Mezzo milione di messaggi non è roba da scorrere: è roba da interrogare. from:, to:, subject:, body:, date:, has:attachment, size:>, le frasi esatte, OR e la negazione — l’elenco completo è nella guida rapida.
La ricerca nel corpo dei messaggi legge davvero la posta, quindi su un archivio molto grande si misura in secondi anziché essere istantanea. Le ricerche sulle intestazioni — mittente, oggetto, data — rispondono subito, e sono quelle che risolvono la maggior parte delle domande.
Non conviene dividere il file?
A volte sì, ma meno spesso di quanto si creda. Dividere ha senso quando i pezzi ti servono davvero separati: un file per anno da archiviare, o una fetta da consegnare a qualcuno. Non ha senso solo per rendere il file apribile, perché non risolve niente se il problema del tuo lettore è il lettore.
Se comunque vuoi dividerlo, abbiamo una guida per le caselle grandi di Thunderbird. E se quello che ti serve è consegnare un sottoinsieme, esportare una selezione come nuovo MBOX è più pulito: restringi con una ricerca o un filtro a ciò che rientra nel perimetro, scrivi quei messaggi in un file nuovo e lascia stare l’originale.
Note pratiche per gli archivi molto grandi
- Spazio su disco: ti serve posto per l’indice, non per una copia della posta. È una frazione della casella.
- Non tenerlo su una condivisione di rete per la prima apertura. Streaming vuol dire leggere una volta tutto il file, e farlo via Wi-Fi trasforma cinque minuti in un pomeriggio. Copialo in locale, aprilo, rimettilo dov’era.
- Esportazioni di Takeout in più parti: Google divide le caselle molto grandi in diversi file. Ognuno si apre per conto suo, e si possono unire in un’unica casella eliminando i messaggi duplicati in base al Message-ID, se le parti si sovrappongono.
- La versione gratuita apre fino a 1 GB. Oltre serve l’acquisto una tantum: nessun abbonamento, nessun account.
Apri il tuo archivio con Mbox Viewer
App nativa per Mac e Windows. Apre in streaming file MBOX ed EML di qualsiasi dimensione, completamente offline.