2015-08-20 13 views
7

sto Profiling dati binari che haPerché le dimensioni dei blocchi Unix aumentano con le dimensioni della memoria più grandi?

  • aumentare Unix dimensione del blocco (uno ha da stat> Blocchi), quando il numero di eventi sono aumentati come nella figura seguente
  • ma la distanza byte tra eventi rimanere costante
  • ho notato alcuni cambiamenti in altri campi del file che possono spiegare l'aumento Unix dimensione del blocco

enter image description here

La dimensione del blocco unix è una misura dinamica. Sono interessato al motivo per cui sta aumentando con unità di memoria più grandi in alcuni sistemi. Ho avuto l'idea che dovrebbe essere costante. Ho usato ambienti diversi per fornire il stat uscita:

  • Debian Linux 8.1 con la sua impostazione predefinita stat
  • OSX 10.8.5 con Xcode 6 e la sua impostazione predefinita stat

commento di Greybeard può avere la risposta al comportamento dei blocchi:

Il comando stat (1) utilizzato per essere una CLI sottile per il sistema stat (2) 01 Chiamata, che trasferiva parti rilevanti dell'inode di un file. Pretty , il significato del membro st_blksize della struttura C restituito da stat (2) è stato modificato in blocchi "preferiti" per I/O di file system efficiente, che porta bene ai file system con dimensioni di blocco o allocazione non orientata ai blocchi.

Come è possibile misurare le dimensioni del blocco nel caso (1) e (2) separatamente?

Perché la dimensione del blocco Unix può aumentare con una maggiore dimensione della memoria?

+3

Puoi approfondire a cosa si riferisce la dimensione del blocco e come stai misurando l'utilizzo della memoria (e quale memoria specifica stai misurando?) – templatetypedef

+0

@templatetypedef Questi dettagli sono dal comando 'stat'. I blocchi sono B, lo stesso di https://en.wikipedia.org/wiki/B-tree. Ho esteso il corpo. –

+1

È necessario essere molto più chiari sul contesto. Quale algoritmo? Quali sono gli eventi? Dimensione di cosa? Quali sono i blocchi (come si riferiscono al B-tree)? Cosa c'è di sbagliato nella tua complessità? Inoltre, non è questa complessità spaziale (dimensione)? –

risposta

3

"Blocchi di stato" non è una dimensione di blocco. È il numero di blocchi del file. È ovvio che il numero di blocchi è proporzionale alle dimensioni. La dimensione del blocco è costante per la maggior parte dei file system (se non tutti).

+0

Grazie per il tuo risposta! Sì, guardo in hexa-editor e vedo che la differenza di byte è fissata tra gli eventi nel file, indicando anche la dimensione del blocco costante.Quindi il numero di blocchi sta aumentando perché la dimensione del file è lineare. complessità come una tendenza lineare crescente tra il numero di blocchi e la dimensione del file? Come si può cambiare/migliorare una condizione del genere? Quando si dovrebbe cambiarlo? –

+1

il file è memorizzato in numero di blocchi di alcune dimensioni fisse (la dimensione dipendesu file system). Quindi il numero di blocchi è filesize diviso per la dimensione del blocco arrotondato. –

Problemi correlati