2015-08-20 11 views
7

ja profilowania dane binarne, które maDlaczego rozmiar bloku Unix zwiększa się przy większym rozmiarze pamięci?

  • rosnącą Unix rozmiar bloku (jeden dostał od stat> bloków), gdy liczba zdarzeń są zwiększone jak na poniższym rysunku
  • ale odległość bajt między zdarzeniami pobyt stały
  • zauważyłem pewne zmiany w innych dziedzinach pliku co może tłumaczyć rosnącą Unix rozmiar bloku

enter image description here

Rozmiar bloku unix jest miarą dynamiczną. Interesuje mnie, dlaczego rośnie z większymi jednostkami pamięci w niektórych systemach. Mam pomysł, że powinien być stały. użyłem różnych środowisk, aby zapewnić wyjście stat:

  • Debian Linux 8.1 z domyślnie stat
  • OSX 10.8.5 z Xcode 6 i jego domyślnie stat

komentarz Greybeard może mieć odpowiedź do zachowania bloków:

Komenda stat (1) była kiedyś cienkim interfejsem CLI do systemu stat (2) wywołanie, które służyło do przesyłania odpowiednich części i-węzła pliku. Całkiem niezłe na początku, znaczenie elementu st_blksize w C struct zwróconego przez stat (2) zostało zmienione na "preferowane" dla pliku wydajnego systemu plików I/O, który dobrze przenosi się do systemów plików z mieszanych rozmiarów bloków lub alokacja bez blokady.

Jak zmierzyć rozmiar bloku w przypadku (1) i (2) osobno?

Dlaczego można zwiększyć rozmiar bloku Unix przy większym rozmiarze pamięci?

+3

Czy możesz opracować, do czego odnosi się rozmiar bloku i jak mierzysz zużycie pamięci (i jaką konkretną pamięć mierzysz?) – templatetypedef

+0

@templatetypedef Te szczegóły pochodzą z polecenia 'stat'. Bloki są B, takie same jak tutaj https://en.wikipedia.org/wiki/B-tree. Wydłużyłem ciało. –

+1

Musisz być bardziej zrozumiały w kontekście. Jaki algorytm? Czym są wydarzenia? Rozmiar czego? Jakie są bloki (jak odnoszą się do drzewa B)? Co jest nie tak z twoimi zawiłościami? Czy nie jest to złożoność przestrzeni O (rozmiaru)? –

Odpowiedz

3

"Bloki stat" nie jest rozmiarem bloku. Jest to liczba bloków, z których składa się plik. Jest oczywiste, że liczba bloków jest proporcjonalna do wielkości. Rozmiar bloku jest stały dla większości systemów plików (jeśli nie wszystkie).

+0

Dziękujemy za Odpowiedź! Tak, patrzę w edytor hexa i widzę, że różnica bajtów jest ustalona między zdarzeniami w pliku, wskazując także na stały rozmiar bloku, więc liczba bloków rośnie, ponieważ rozmiar pliku jest liniowy. złożoności takiego liniowego trendu rosnącego można zobaczyć między liczbą bloków i rozmiar pliku? Jak zmienić/poprawić taki stan? Kiedy należy go zmienić? –

+1

plik jest przechowywany w liczbie bloków o stałym rozmiarze (rozmiar zależy w systemie plików). Tak więc liczba bloków jest podzielona na rozmiary przez zaokrąglenie bloku w górę. –

Powiązane problemy