È meglio salvare l'output dal comando in memoria e archiviare in un secondo momento o salvare in un file temporaneo e quindi passare alla posizione finale?

1

Spero che questo non sia fuori tema.

Devo salvare l'output da un comando al file, ma solo se la lunghezza di questo output è positiva. Ho pensato a due soluzioni:

  • salva l'output in una variabile python, controlla la lunghezza, se il salvataggio è positivo nel file di destinazione;
  • salva l'output in un file temporaneo, controlla la lunghezza, se positivo rinomina il file di destinazione.

C'è qualche buona pratica per questo piccolo problema, o quale di solito funziona meglio tra le mie soluzioni proposte?

Configurazione tipica:

    la lunghezza del file
  • di solito è 1KB
  • non stiamo usando SSD, in genere un disco fisso da 7200 giri / min
  • la RAM media è in genere 10-20 GB
  • Non so se il filesystem è importante, comunque ext3

So che questo non è chiaro, ma speravo che in questo caso esistessero alcune best practice.

Grazie

    
posta gc5 01.05.2013 - 22:53
fonte

3 risposte

1

Per pochi problemi suggerisco di archiviare in memoria perché la memoria è economica e veloce e l'archiviazione su disco è lenta e un'operazione costosa.

32 GB di memoria RAM sono più comuni oggigiorno delle unità a stato solido.

    
risposta data 01.05.2013 - 23:10
fonte
2

Penso che la risposta a questo sia: dipende.

Se è importante non perdere questi dati, il mio consiglio sarebbe di farlo sul disco il prima possibile. Ricorda che se accade qualcosa di brutto sul computer, qualsiasi cosa in memoria andrà persa.

Tuttavia, se è più importante che il tuo programma funzioni nel modo più performante possibile, allora scrivere in memoria è destinato a essere più veloce della scrittura su disco.

    
risposta data 02.05.2013 - 09:07
fonte
1

Per problemi di queste dimensioni (pochi kilobyte a diversi megabyte), direi di memorizzarlo in memoria, controllare la condizione di lunghezza e, se è successo, salvarlo sul disco come file permanente. A meno che i dati di output recuperati dalla riga di comando siano molto importanti, è meglio verificare i dati sulla memoria. In effetti, direi anche che, a meno che l'operazione eseguita sia "rischiosa" (alta probabilità di corruzione dei dati o simile) o ci sia una notevole possibilità di errore di dati o di alimentazione, utilizzare prima la memoria e poi scaricarla sul disco. La RAM è economica e veloce ma, temporaneamente. Considerando che, il disco rigido è lento, costoso, ma, (più) permanente.

Nel complesso, si tratta di quanto grandi sono i tuoi dati e di quanti rischi sono coinvolti nel processo (e sei disposto a farlo).

    
risposta data 02.05.2013 - 03:15
fonte

Leggi altre domande sui tag