Sayfa 1 - Toplam 2 12 SonSon
Bulunan 1 den 10 - Toplam 12

Konu: hızlı dosya kopyalama

  1. #1
    Ceviz Üyesi stan Üyenin Avatarı
    Üyelik Tarihi
    26-Ekim-2004
    Mesaj
    18

    Varsayılan hızlı dosya kopyalama

    merhaba arkadaşlar.
    c++ ile hızlı dosya kopyalama nasıl yapabilirim

  2. #2
    Ceviz Üyesi pulsar Üyenin Avatarı
    Üyelik Tarihi
    06-Temmuz-2004
    Nereden
    Turkey
    Yaş
    32
    Mesaj
    176

    Varsayılan

    Fork ile bir sürü prosedür açarsın ve bu prosedürlerin hepsi bir dosyadan okur. Hepsi de diğer bir dosyaya yazar. Sonra dosya başlıklarını birleştirirsin. (FAT VFAT vs vs krallarla). Hızlı kopyalama benim bildiğim böyle yapılır.
    I Can DO

  3. #3
    Ceviz Üyesi stan Üyenin Avatarı
    Üyelik Tarihi
    26-Ekim-2004
    Mesaj
    18

    Varsayılan

    ya şimdi adam dosya yolunu girecek iki dosya yolunuda hemen bir dosyayı diğer dosyaya yollayacak..ama yollarken önce sıkıştırma algoritmasına göre sıkıştıracak hızlı gitmesi için daha sonra bunu çözerek kopyalamayı bitirecek

  4. #4
    Ceviz Üyesi
    Üyelik Tarihi
    31-Mayıs-2004
    Yaş
    26
    Mesaj
    4

    Varsayılan

    Fork ile bir sürü prosedür açarsın ve bu prosedürlerin hepsi bir dosyadan okur. Hepsi de diğer bir dosyaya yazar. Sonra dosya başlıklarını birleştirirsin. (FAT VFAT vs vs krallarla). Hızlı kopyalama benim bildiğim böyle yapılır.
    (@Pulsar, yazdığın mesajları win32 sistemlerine biraz daha uygun yazarsan sanırım forumdaki herkes daha mutlu olacak. Yardımcı olmaya çalışıyorsun ama bence bir dahaki sefere forumdaki çoğu insanın low-level işlemlere aşina olmadığını hatırla.)

    Win32 altında birden fazla "prosedür" açma nasıl oluyor anlamadım. Eğer thread kastediliyorsa bütün bu threadların bir dosyaya aynı anda senkronize bir şekilde yazması gerekecek. Senkronize okuma neyse de senkronize yazma için OpenFile'a nasıl bir flag geçilmesi gerekir emin değilim.


    ya şimdi adam dosya yolunu girecek iki dosya yolunuda hemen bir dosyayı diğer dosyaya yollayacak..ama yollarken önce sıkıştırma algoritmasına göre sıkıştıracak hızlı gitmesi için daha sonra bunu çözerek kopyalamayı bitirecek
    En hızlı ve verimsiz sıkıştırma algoritması bile donanımın gerçekleştirdiği "basit" kopyala-yaz işleminden kat kat yavaştır, bu yüzden bu yöntem dosya kopyalamanın "hızlı" bir yolu olamaz. Hatta dosya kopyalamanın hızlandırılması konusunda sadece iki şey yapılabilir gibi görünüyor:

    -donanımsal olarak HD'nin okuma/yazma hızını arttırmak
    -defragmantation (disk birleştirme) yapmak

    Bunlar dışında kullanılacak her yöntem az çok aynı olacağından fazla bir performans kazancı sağlamayacaktır.

  5. #5
    Ceviz Üyesi IcenGuard Üyenin Avatarı
    Üyelik Tarihi
    16-Ekim-2003
    Nereden
    Ankara[3139.71,2532.11] Yediği Havuç: 38
    Mesaj
    1,443

    Varsayılan

    "dosya kopyalama" derken ne demek istiyorsun? kim nerden nereye kopyalıyor?

    @pulser
    eger aynı anda dosyaynın birkac yerine ulasırsan hızlanmak yerine daha da yavaslamaz mı sistem?
    Mi perro "mafia divertido rojo" comió a mi líder de la escuadrilla del asesinato "el comedor de los pescados". wiki.ceviz.net

  6. #6

    Varsayılan

    Maltanar, pulsar'in onerdigi fork POSIX'e uyumlu oldugunu soyleyen Windows ortaminda da var.

    Forumda Win32'nin daha yaygin oldugu, veya belirli bir platforma oncelik verilmesi gerektigi fikirlerine katilmiyorum. Herkese yararli olabilmek icin standartlara olabildigince bagli kalmamiz gerekir. Standart C++, POSIX, vs.

    Bu soruda bilmedigimiz bir cok sey var. Ornegin nereden nereye kopyaliyoruz? Eger bilginin kopyalanacagi hedef NFS gibi bir ortamdaysa, sikistirma hiz saglayabilir. Ornegin, sikistirmanin SSH baglantilarinda hiz kazanci sagladigini kullananlarin deneyimlerinden biliyorum.

    stan, ben de IcenGuard'in sorusunu tekrarliyorum: hizli dosya kopyalamaktan ne kastediyorsun?

    Ali

  7. #7
    Ceviz Üyesi stan Üyenin Avatarı
    Üyelik Tarihi
    26-Ekim-2004
    Mesaj
    18

    Varsayılan

    ya sorun o zaten dosya şifrelenip sıkıştırıldığında işlem yavaşlıyor... işte bu veriyi alıp hızlı birşekilde nasıl kopyalama yada yollama işlemi gerçekleştirebilirim... parçalayarak mı?
    yoksa değişik bir yollamı?

  8. #8
    Ceviz Üyesi pulsar Üyenin Avatarı
    Üyelik Tarihi
    06-Temmuz-2004
    Nereden
    Turkey
    Yaş
    32
    Mesaj
    176

    Varsayılan

    Win32 altında birden fazla "prosedür" açma nasıl oluyor anlamadım. Eğer thread kastediliyorsa bütün bu threadların bir dosyaya aynı anda senkronize bir şekilde yazması gerekecek. Senkronize okuma neyse de senkronize yazma için OpenFile'a nasıl bir flag geçilmesi gerekir emin değilim.
    Arkadaşım win32de forc yerine createproc vardır. İkincisi bir dosyaya aynı anda bir sürü prosedür ile yamıyoruz bür sürü HDD dosya parçası yazıyoruz ve sonra bunların HDD başlangıç kısımlarını birleştiriyoruz. Dosya olarak düşünmeyin sektor olarak düşünün. Ben cevap verirken farklı mount edilmiş iki alandan bahsediyorum. Bu is için de HDDye sector bazlı yazma yetkiniz olması gerekiyor. Windows için admin olmalısınız ve ring 0 da çalışmalısınız. yani dosyaları değil sektörlerin kopyasını alıyorum. Prosedür sayım artınca sistemin bana ayırdığı kaynak artıyor. Tabi bunun da optimum sınırı var. Yoksa swich için geçen süre yer bitirir sizi.
    I Can DO

  9. #9
    Ceviz Üyesi stan Üyenin Avatarı
    Üyelik Tarihi
    26-Ekim-2004
    Mesaj
    18

    Varsayılan

    sektörlerle işlem gerçekleşirse daha hızlı olurmu diyorsun? peki güvenlik açısından nasıl olur?...............

  10. #10
    Üyeliği İptal Edildi Euclides Üyenin Avatarı
    Üyelik Tarihi
    18-Nisan-2004
    Nereden
    M86
    Mesaj
    1,090

    Varsayılan

    1..
    Pulsar -1
    2...
    Zw*(CreateFile/OpenFile) API'lerinin senkronize(Disk Cahce kullanmadan) okuma/yazma için bir flagları var.(Şu an hatırlamıyorum DDK'ya bakmam lazım)

    Ayrıca SpinLock ları kullanarak Context switching mekanizmasını durdurabilirsiniz.
    Şüpesiz ki bu thread'a iyi bir hız kazancı sağlayacaktır.
    3....
    SpinLock'lar ve WinNT driver modeli için DDK'ya ve
    MS Press'den "Programming Microsoft Windows Driver Model" adlı kitaba başvurabilirsiniz.

Konu Bilgileri

Bu Konuya Gözatan Kullanıcılar

Şu anda 1 kullanıcı bu konuyu görüntülüyor. (0 kayıtlı ve 1 misafir)

Yer İmleri

Mesaj Yetkileriniz

  • Yeni konu açmaya yetkiniz yok
  • Cevap yazmaya yetkiniz yok
  • Eklenti yüklemeye yetkiniz yok
  • Mesajınızı düzeltmeye yetkiniz yok
  •