Pliki rozrzedłe
Plik, w którym większość danych to zera, mówi się, że zawiera rozrzedzona zestaw danych. Pliki takie jak te są zwykle bardzo duże, na przykład plik zawierający dane obrazu do przetworzenia lub macierz w szybkiej bazie danych. Problem z plikami zawierającymi rozrzedliwe zestawy danych polega na tym, że większość plików nie zawiera przydatnych danych, a z tego powodu są nieefektywnym użyciem miejsca na dysku.
Kompresja plików w systemie plików NTFS jest częściowym rozwiązaniem problemu. Wszystkie dane w pliku, które nie są jawnie zapisywane, są jawnie ustawione na zero. Kompresja plików kompaktuje te zakresy zer. Jednak wadą kompresji plików jest to, że czas dostępu może wzrosnąć z powodu kompresji danych i dekompresji.
Obsługa rozrzedniejszych plików jest wprowadzana w systemie plików NTFS jako inny sposób na zwiększenie wydajności użycia miejsca na dysku. Po włączeniu funkcji rozrzedzonych plików system nie przydziela miejsca na dysku twardym do pliku, z wyjątkiem regionów, w których zawiera dane niezerowe. Gdy próba zapisu polega na tym, że duża ilość danych w buforze wynosi zero, zera nie są zapisywane w pliku. Zamiast tego system plików tworzy wewnętrzną listę zawierającą lokalizacje zer w pliku, a ta lista jest konsultowana podczas wszystkich operacji odczytu. Gdy operacja odczytu jest wykonywana w obszarach pliku, w których znajdowały się zera, system plików zwraca odpowiednią liczbę zer w buforze przydzielonym do operacji odczytu. W ten sposób konserwacja pliku rozrzednia jest niewidoczna dla wszystkich procesów, które uzyskują do niego dostęp, i jest wydajniejsza niż kompresja dla tego konkretnego scenariusza.
Domyślna wartość danych pliku rozrzednego wynosi zero; można go jednak ustawić na inne wartości.
Aby uzyskać więcej informacji na temat rozrzednych plików, zobacz następujące tematy.
W tej sekcji
Temat | Opis |
---|---|
operacje na plikach rozrzednych |
Ustal, czy system plików obsługuje pliki rozrzedłe, wywołując funkcję GetVolumeInformation. |
uzyskiwanie rozmiaru pliku rozrzednego |
Pobierz przydzielony rozmiar lub całkowity rozmiar pliku przy użyciu GetCompressedFileSize lub funkcji GetFileSize. |
plików rozrzednych i przydziałów dysków |
Plik rozrzedowany wpływa na przydziały użytkowników według nominalnego rozmiaru pliku, a nie rzeczywistej przydzielonej ilości miejsca na dysku. |