Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 3255|Yanıt: 2

[Kaynak] .NET/C# Yüksek performans, birden fazla dosyayı tek bir dosyaya birleştirir

[Bağlantıyı kopyala]
2024-2-14 tarihinde yayınlandı 12:04:26 | | | |
Gereksinimler: Büyük dosyaları parçalar halinde yüklemek için kullanıldığında, arka uç farklı blokları sırayla tek bir dosyaya birleştirmeli veya arşiv dosyasını keserken kesilen dosyaları kaynak dosyaya birleştirmelidir.

Linux bölünmüş dosya kesme bölünmeleri kullanır
https://www.itsvse.com/thread-10716-1-1.html

İlk olarak, aşağıdaki komutla test için iki 100M dosya hazırlayın:

Windows, belirtilen boyutta bir dosya oluşturur
https://www.itsvse.com/thread-10732-1-1.html

Kod şöyledir:


İki farklı birleşme senaryosu test edildi. Aşağıda gösterildiği gibi:



VS 2022 debug -> Profiler -> ".NET Object Allocation Trace" işaretiyle test etmeye başlayın:



Merge1 toplam büyüklüğü: 16.778.034, Merge2 toplam büyüklüğü: 164.270,Toplam tahsis, merge1'in merge2'den 102 kat büyük olduğunu ve ne kadar büyük olursa performansın o kadar kötü olduğunu gösteriyor

Aşağıdaki şekilde gösterildiği gibi, CPU Yığınları ve GC Heap Net Mem Yığınları analizini ayrı ayrı görmek için PerfView kullanın:



Açıklama:Inc% - Dahil maliyet, tüm örnekler için toplam maliyetin yüzdesi olarak ifade edilir(%100 ROOT düğümleri için). Buna göre ayarlanabilir.





Önceki:Windows, belirtilen boyutta bir dosya oluşturur
Önümüzdeki:.NET'te JIT ve AOT derlemesi arasındaki giriş ve fark
 Ev sahibi| 2024-2-14 12:09:30 tarihinde yayınlandı |
VS 2022 Debug -> Performance Profiler -> "Memory Usage" işareti ile test edin:

  • merge1 çalıştırıldığında 808MB kaplar
  • merge2 çalıştırıldığında 12MB kaplar




Merge2 yöntemi tek başına çalıştırılırsa, program 6MB başlar ve fonksiyon yürütme sırasında ve tamamlandıktan sonra her zaman 6MB kaplar.
 Ev sahibi| 2025-1-1 10:20:06 tarihinde yayınlandı |
Yazım stilini optimize edin

Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com