← Blog
Araçlar

Bilgisayarda dosya arama neden yavaş, nasıl hızlandırılır?

· 20 okunma

Bilgisayarda dosya arama neden yavaş, nasıl hızlandırılır?

Stüdyomda D:\VESİKALIK klasörünün altında yıl yıl, ay ay açılmış klasörlerde yüz binlerce müşteri dosyası var (bu arşivi bilgisayarlar arasında nasıl taşıdığımı büyük dosya aktarımı yazısında anlatmıştım). Bir müşteri arayıp "üç sene önce çektirmiştim, dosyam duruyor mu?" diye sorduğunda Windows'un arama kutusuna adını yazıp bekliyordum. Bazen bir dakika, bazen beş. Bu yazıda aramanın neden bu kadar yavaş olduğunu ve aynı dosyayı milisaniyeler içinde bulmanın yolunu anlatıyorum.

Windows araması neden yavaş

Gezgin'in arama kutusuna bir şey yazdığınızda Windows klasörleri tek tek açıp içine bakar. Buna "gezinerek arama" deniyor. Bir klasörde bin dosya varsa hızlıdır; yüz bin dosya ve on bin klasör varsa her sorgu diskle binlerce kez konuşmak demektir.

Windows'un bir de dizinleme servisi var (Windows Search). O da bir dizin tutuyor ama iki sorunu var: varsayılan olarak yalnızca Belgeler, Masaüstü gibi birkaç klasörü kapsıyor, ve dosyanın içeriğini de dizinlemeye çalıştığı için ağır. D: sürücüsündeki arşivinizi kapsama alanına eklerseniz dizin şişiyor, bilgisayar yavaşlıyor.

Asıl mesele: dosya adları zaten bir yerde yazılı

NTFS ile biçimlendirilmiş her diskte ana dosya tablosu (Master File Table, kısaca MFT) diye bir yapı var. Diskteki her dosya ve klasör için bir kayıt tutuyor: adı, hangi klasörün altında olduğu, boyutu. Bu tablo dosya sisteminin kendi defteri; siz hiçbir şey yapmasanız da Windows onu güncel tutuyor.

Yani dosya adlarının listesi diskte hazır duruyor. Klasörleri tek tek gezmek yerine bu tabloyu bir kez okuyup belleğe almak, aramayı tamamen başka bir işe dönüştürüyor: artık disk değil, bellek aranıyor.

İkinci parça değişiklik günlüğü (USN Journal). NTFS, dosyalarda olan biteni buraya yazıyor: şu dosya oluşturuldu, şu silindi, şunun adı değişti. Programın tek yapması gereken bu günlüğü dinlemek; böylece bellekteki liste taze kalıyor, yeniden taramaya gerek kalmıyor.

Ölçtüğüm sonuçlar

Kendi sistem diskimde ölçtüm; disk üzerinde 1,4 milyon nesne var:

  • Programı ilk açtığımda tablonun tamamının okunması: 2 saniye
  • Dosya tarihi ve boyutunun arka planda doldurulması: 3,2 saniye
  • Sonraki açılışlar (liste diske kaydedildiği için): 0,1 saniye
  • "ali" yazdığımda 9.266 sonucun gelmesi: 15–20 milisaniye
  • 1,4 milyon satırın tarihe göre sıralanması: 155 milisaniye

Bu rakamların pratikteki anlamı şu: her tuş vuruşunda baştan aramak sorun değil. Harfi yazıyorsunuz, liste o an daralıyor. Beklemek diye bir şey kalmıyor.

Fotoğrafçı için asıl faydası

Stüdyoda arama iki durumda lazım oluyor. Birincisi müşteri arayıp eski işini sorduğunda. İkincisi teslim öncesi "şu kareyi nereye koymuştum" dediğinizde. İkisinde de ihtiyacınız olan şey dosyanın içeriği değil, adı: müşterinin adı soyadı, iş numarası, tarih.

Türkçe karakter burada ayrı bir dert. Dosyayı "GÜLAY YAZICI" diye kaydetmişsiniz, arama kutusuna "gulay" yazıyorsunuz, hiçbir şey çıkmıyor. Bunun için aramanın Türkçe harfleri denk sayması gerekiyor: ü ile u, ı ile i, ş ile s aynı harf muamelesi görmeli.

Bir de sıralama var. Yüzlerce sonuç geldiğinde aradığınız neredeyse her zaman en yenisidir; liste varsayılan olarak en yeniden en eskiye gelmezse sonuçların içinde ikinci bir arama yapmak zorunda kalıyorsunuz.

Bu üç ihtiyaç yüzünden kendime Stüdyo Ara'yı yazdım: dosya tablosundan okuyor, Türkçe harfleri denk sayıyor, listeyi tarihe göre yeniden eskiye veriyor. Ücretsiz.

Dikkat edilecek noktalar

Bu yöntemin sınırları var, bilerek kullanmak gerekiyor:

  • Yalnızca NTFS disklerde çalışır. Hafıza kartları ve çoğu USB bellek exFAT biçimli olduğu için kapsam dışında kalır.
  • Dosya adına göre arar. Bir Word belgesinin içindeki cümleyi aramaz.
  • Dosya tablosunu okumak yönetici yetkisi ister; program bunu kurulumda bir kez halledip her açılışta uyarı çıkarmayacak şekilde ayarlanabilir.
  • İlk tarama sonrası liste diske yazılır. 1,4 milyon nesnede bu dosya 120 MB civarı; yerini bilmekte fayda var.

Özetle

  • Windows araması yavaş, çünkü klasörleri tek tek geziyor.
  • NTFS zaten bütün dosya adlarını ana dosya tablosunda (MFT) tutuyor; bu tabloyu bir kez okumak aramayı disk işi olmaktan çıkarıp bellek işine çeviriyor.
  • Değişiklik günlüğü (USN Journal) dinlenirse liste yeniden taramaya gerek kalmadan güncel kalıyor.
  • Ölçtüğüm sistemde 1,4 milyon nesne 2 saniyede tarandı, arama 5–25 milisaniyeye indi.
  • Türkçe harf duyarsızlığı ve tarihe göre sıralama, stüdyo arşivinde aramayı gerçekten kullanılır yapan iki ayrıntı.
Etiketler dosya arama windows arama stüdyo arşivi dosya bulma programı ntfs
PaylaşWhatsAppE-posta

Programları denemek ister misiniz?

Stüdyo Market’i kurun, bütün programlara tek yerden ulaşın.

Stüdyo Market’i indir

Windows uyarı gösterirse: Daha fazla bilgi → Yine de çalıştırNeden?

WhatsApp’tan yazın