2013-08-05 15 views
7

cp folder1 folder2 -rf'u çalıştırdığımda, ilk kez yaklaşık 10 dakika sürer. Ancak, ikinci komutu cp folder1 folder3 -rf yürütürken, yaklaşık 1 dakika sürer. folder1, yaklaşık 100.000 dosya içerir.neden ikinci kez cp komutu daha hızlı

Niçin ikinci kez zamanla gelişme var?

+3

Sadece tahmin: Belki de 'folder1' içeriğinin hafızada olması nedeniyle daha hızlı kopyalanabilir mi? – fedorqui

cevap

10

Bunun nedeni sayfa önbelleklemesidir. Yeniden yavaşlatmak için sync ; echo 3 > /proc/sys/vm/drop_caches'u çalıştırın.

fazla okuma:

+0

Small nitpick: Burada "sync" in çağrılması oldukça işe yaramıyor. Birinin senkronize edilmesini istemek, kirli nesnelerin temizlenememesidir. Ancak, "sync" sadece _initiates_ writeback, gerçekten "senkronizasyon" (yani, yazıcının tamamlanmasına kadar blok) değildir. Senkronizasyon çağrıldıktan hemen sonra önbelleklerin bırakılması hemen hemen senkronizasyonla aynı değildir. – Damon

5

İlk defa dosyalar sabit diskinizden okunur.

Dosyalara ikinci kez bellekten okunur.

Linux, çoğu işletim sistemi olarak, önbelleklerin bellekteki dosyalara/bloklara erişebildiğinden.

1

budur. Bu komut ilk kez çalıştırıldığında, dosyayı daha yavaş olan diskten okumak zorundaydı. Bu, sabit erişim elde etmek için gerçek ölçüt uygulanmadan önce bir "kedi MYFILE>/dev/null" ekleyerek, disk erişimini kullanan herhangi bir ölçüt türünü çalıştırmak isteyip istemediğinizi unutmayın.

İlgili konular