2012-07-17 18 views
6

bir açık kaynak projesi ya da en iyi uygulamalar rehberi yerel makinenin etrafında dosyaları kopyalamak için en hızlı yol gösterir, lan, san ve wan, o hızını orada rakip olabilecek mi yerleşik windows7 ait xcopy (veya 8) veya windows explorer kopyası mı? Xcopy hızına nasıl rakip olurum?

IO eşit oluşturulur künt, tüm dosya olmak. Bazı protokollerde ve tekniklerde farklı ek yükler vardır. Bazı kütüphaneler, senkronize olmayan işlemlerden veya donanımın hat hızından yararlanmadan yararlanmaz.

Ben Kullandığımız büyük veri aktarımları envanterini çıkararak ve müşteri uygulamalarının etkinliğini ve dış satıcılardan uygulama oranı çalışıyorum. Bazı sunucu uygulamaları en kötü faillerdir (java tabanlı en kötüsüdür).

I2 ve 3 SMB için bu araştırma kapsamını sınırlayıcı ediyorum (windows7 CIFS ve 8).

  • POSIX kitaplıklarında hızda bir dezavantaj var mı? (Fread fopen, fseek, vs)
  • herhangi bir avantaj win32 çağrıları (CopyFile2, ReadFileEx)
+2

görünüyor. Ancak, belgelenen CopyFileEx muhtemelen çok benzer şekilde gerçekleştirir. –

cevap

1

xcopy aslında özellikle diskler boyunca ya da yerel ağ üzerinden, dosyaları kopyalamak için en hızlı yol değildir kullanmanın var mı . TeraCopy adlı ticari bir ürün daha hızlıdır. Kapalı kaynaklıdır, bu yüzden tamamen nasıl çalıştığını bilmiyorum ama ana farklılıklardan biri, bir bellek arabelleğine veri yığınını okumak için tek bir döngü kullanmak yerine o arabayı yeni konuma yazmasıdır. iki iplik ve bir üretici/tüketici kuyruğu.

yapımcı kaynak dosyasının parçalarını okur ve bir sıraya koyar. Tüketici sıradan okur ve hedefe yazar. Buradaki avantaj, okuma ve yazmanın aynı anda yapılabilmesidir. Yine de dikkatli olmanız ve üreticinin kuyruğun boyutuna dikkat etmesini ve kuyruğu çok fazla bellek kullanmamasını sağladığından emin olun - genellikle okuma yazmadan daha hızlı olacaktır, ancak bu aynı zamanda kaynağa ve hedefe de bağlıdır. konumları. Xcopy bir belgesiz API işlevi, PrivCopyFileExW kullanır sanki