Neden çok büyük sayıda dosyayı (ortalama küçük boyutta) tek bir dosyadan (büyük boyutta) daha uzun süre siliyor?


-1

Diyelim ki 2 dosya silme vakam var:

  1. Ortalama 30 KB boyutunda 150.000 dosya, toplam boyut 4 GB'dir
    - & gt; bir saat içinde bitmiş
  2. 8 GB boyutunda tek dosya
    - & gt; bir çırpıda bitmiş

Durum 2'deki dosya boyutu, durum 1'den daha büyük
Neden 1. durumda silme neden 2. durumda daha uzun sürdü?


Birisi görsel açıklama sağlayabilir eğer harika olurdu
nametal

Yanıtlar:



2

Her dosyayı silmek, dizin meta verilerindeki (yani dosya hakkındaki bilgilerin depolandığı yer) ve (genellikle) boş alan bitmapine yönelik güncelleştirmeler içerir. 150.000 dosyadan her biri, diskin her tarafında olabilen meta verilerde yapılan bir işlemdir.

Boyutu ne olursa olsun, tek bir dosyayı silmek, tek bir meta veri girişine geçer.

Yani, ilk durumda, aslında ikincisinden 150.000 daha fazla işlem yapıyorsunuz.


Bu adil bir karşılaştırma değildir, çünkü ikinci durum boş alan takibinde önemli ölçüde daha fazla işlem gerektirebilir.
David Schwartz

Evet, ikinci durum boş alan bitmapine yönelik daha birçok güncelleme içerebilir (ve olacaktır), ancak dosya giriş güncellemelerinin sayısı ile karşılaştırıldığında, biz de bunu görmezden gelebiliriz. Bütün bitmap genellikle bir disk alanında bulunduğundan, belirli bir durumda bile 250 KB'lik (8 GB dosya, 4 KB sektör) tek güncellemeden bahsediyoruz. Gerçek hayattaki sayılar bir çok faktöre bağlı, dosya sistemi tipi ve sektör büyüklüğü en önemli olanlar ...
Josip Medved

1
Sadece biraz (ROUGH) matematik vermek için. Her 30 KB dosya, dosya girişi güncellemelerini (4 KB yazma) + boş alan bitmap'i (4 KB yazma) güncellemeyi içerecektir. Yaklaşık 1 GB yazma olan 150.000 dosya için tüm diske yayılmıştır. 8 GB dosya durumunda, bu bir dosya girişi güncellemesi (4 KB) + boş alan bitmap güncellemesi (250 KB) olacaktır. Fark çok büyük, hatta hesaba katılmadan yazmadan önce veriyi gerçekten okumalısınız. Ve evet, akıllı disk önbelleğe alma, sayıları bir miktar geliştirme eğiliminde olacak.
Josip Medved

1

Durum 1, çok daha fazla dizin işlemi gerektiriyor. Her dosya ayrı ayrı silinir ve bu da içinde bulunduğu dizinden kaldırılmasını gerektirir.

150.000 dosyayı silmek, her bir dosyayı dizin yapısında bulmayı ve ardından bu dosyayı dizinden kaldırmayı, işlem sırasında dizin yapısının düzenini korumayı gerektirir.


0

Her dosya hdd tabağınızda farklı bir bölüme kaydedilir. Dosyalar ayrıca ayrılabilir, böylece daha fazla dosya + daha fazla parça = daha fazla zaman. Daha büyük bir dosya daha az parçaya sahip olacak ve HDD onları bulmak için daha az zaman harcayacak.


Bir dosyanın parçalarına, dosya silindiğinde erişilmesi gerekmez.
David Schwartz

Hala silmek için diskteki yerini bulmak gerekiyor
slow_excellence

Bununla ne demek istediğinizi bilmiyorum, ama ne olursa olsun, parçalara erişmiyor.
David Schwartz

0

Bir dosyayı silmek için çoğu işletim sistemi, yalnızca dizin girişini kullanılmamış olarak işaretler, daha sonra başka bir dosyaya dizin girişi ile değiştirilir (diskte kapladığı alanı boş olarak işaretlemenin yanı sıra).

Aslında dosyadaki tüm verilerden geçmiyor ve çıkarılıyor, bu nedenle silinmeyen hizmet programlarının çalışmasının nedeni budur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.