Durata della scheda SD durante l'utilizzo per memorizzare una struttura di dati

StackOverflow https://stackoverflow.com/questions/1214293

  •  06-07-2019
  •  | 
  •  

Domanda

Ho creato una struttura di dati basata su disco per archiviare i dati in tempo reale in entrata, questo non è in memoria perché l'array può riempirsi e causare l'arresto anomalo di jvm. La struttura dei dati e l'algoritmo funzionano alla grande. La mia unica domanda è che questo influisce notevolmente sulla vita di una sdcard?

So che le sdcard hanno una lettura e una scrittura limitate su di esse, ma quanto è "limitato". Scrivere sulla scheda SD per dire in media 20 minuti per sessione influirà notevolmente sulla scheda SD al punto in cui l'utente vede che è stata questa app a ucciderla?

È stato utile?

Soluzione

Il numero di scritture sulla carta è compreso tra 100.000. Questo è il numero di cancellazioni del settore flash, che può essere molto maggiore di un settore del disco.

Ho trovato il seguente documento con calcoli: STEC SMALL CARDS LEVELING E CALCOLATORE A VITA

Uno degli esempi: Durata = 2.000.000 x (512 MB e # 8211; 100 MB e # 8211; 128 KB) / (50 MB x 10 / giorno) = 4.513 anni

Quindi, se fai un ragionevole lavoro di progettazione (cioè non apri / chiudi i file per ogni byte che scrivi in ??quanto ciò potrebbe forzare i flush e quindi le scritture) Non mi preoccuperei nemmeno di impostare test molto ampi ... .

Altri suggerimenti

Pensavo di aver ricordato che la memoria flash moderna era valida per centinaia di migliaia di riscritture. Il numero di letture, per quanto ne so, non è limitato.

Se ti fa sentire meglio, Windows Vista supporta una funzionalità chiamata ReadyBoost, che ti consente di allocare spazio cache su un'unità flash USB per migliorare le prestazioni. Penso che fintanto che riesci a uniformare in qualche modo le scritture, dovresti stare bene.

Inoltre, alcuni moduli di memoria flash hanno controller integrati con ottimizzazione della scrittura integrata, quindi proveranno a scrivere in diverse aree della memoria nelle successive operazioni di scrittura. Probabilmente non puoi contare su questo, tuttavia, a meno che tu non scopra per certo se la tua particolare scheda di memoria ha un controller integrato (SD, in particolare, non ha un controller integrato, ma forse ha ancora qualche altro meccanismo con cui uniforma le scritture).

EDIT: ecco un link che spiega l'usura della memoria e "il livellamento dell'usura" più in dettaglio: http://en.wikipedia.org/wiki/Flash_memory#Memory_wear

Ho acquistato il primo eeepc che utilizzava una scheda SD come "disco rigido" e quindi sono stato interessato a discussioni su questo, in particolare perché ho avuto il modello da 2 GB che ho impostato il ram interno per estendersi su un Scheda SD da 4 GB. È difficile ottenere dati reali concreti, ma tutte le opzioni informate che riesco a trovare suggeriscono che questo non dovrebbe essere un problema entro una durata ragionevole per la macchina (e certamente il mio eeepc è stato eseguito abbastanza felicemente su un file system ext3 sul Scheda SD - ovvero molta attività - senza problemi - da quando l'ho hackerata).

L'opinione sembra essere che le moderne schede SD dovrebbero darti almeno 100.000 cicli, quindi penso che puoi ragionevolmente aspettarti di andare bene se la durata del tuo dispositivo è solo di pochi anni. Tuttavia, l'unico modo per essere sicuri è impostare alcuni test con il programma che scrive continuamente su un lotto di schede campione e vede se falliscono entro un periodo di tre mesi circa. Chiederei anche direttamente ai produttori.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top