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

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

[Kaynak] C#, süreç belleği eşleme dosya paylaşımı belleğini uygular

[Bağlantıyı kopyala]
Yayınlandı 7.10.2017 18:51:10 | | |
Bellek eşleme dosyaları, dosyaları sürecin adres uzayına eşlemek için sanal bellek kullanır; ardından süreç, dosyayı süreç alanındaki adres gibi manipüle eder; örneğin C dilinde memcpy ve diğer bellek işlem fonksiyonları kullanılarak. Bu yöntem, bir dosyanın veya büyük bir dosyanın sıkça işlenmesi gerektiğinde ve IO işleme verimliliğinin sıradan IO'dan daha yüksek olduğu durumlarda iyi kullanılabilir
Paylaşılan bellek, disk üzerindeki dosya yerine bir parça belleği eşleyen bellek-eşlemeli dosyaların özel bir durumudur. Paylaşılan belleğin konusu Süreçtir ve işletim sistemi varsayılan olarak her sürece bir bellek alanı tahsis eder; her proses yalnızca işletim sistemi tarafından tahsis edilen bir bellek parçasına erişebilir, diğer süreçlere erişemez. Ve bazen farklı süreçler arasında aynı hafıza parçasına erişmen gerekir, ne yapmalısın? İşletim sistemi, paylaşılan belleğe erişim oluşturmak için bir API sağlar ve bellek paylaşması gereken süreçler, bu tanımlanmış API seti aracılığıyla birden fazla prosesin paylaştığı belleğe erişebilir ve her süreç bu belleğe sabit diskteki bir dosyaya erişiyormuş gibi erişir. .Net 4.0 ise System.IO tanıtıyor. MemoryMappedFiles isim alanı, Windows Paylaşılan Bellek ile ilgili API'leri kapsayan ve .Net programcılarının bellek eşleme dosyalarını kullanmasını kolaylaştıran bir sınıftır.
C#'da paylaşılan bellek kullanın. App1 için aşağıdaki kod, kullanıcının paylaşılan belleğe bir satır metin girmesini sağlar; App2 konsolu sürekli yeniler ve en son paylaşılan bellek içeriğini çıkarır; App3, App2 ile aynı işlevleri uygular, ancak okuma yöntemi farklıdır.

Verileri okumak için iki yöntem kullanıldı.
Süreçler arasındaki iletişim daha önce nadiren kullanıldığı için, bu yöntem sadece ön bir anlayıştır. Program çok ilkel ve birçok şey yargılanmıyor. Örneğin, paylaşılan bir bellek nasıl oluşturulur, nasıl alınır ve silinir vb.




Önceki:.net/c# CryptoJS aes şifreli kaynak kodu
Önümüzdeki:activemq Kalıcı depo dolu
 Ev sahibi| Yayınlandı 3.10.2025 16:10:57 |
.NET/C#, Mutex ve MemoryMappedFile tabanlı programı uygular
https://www.itsvse.com/thread-10808-1-1.html

.NET/C# ebeveyn-çocuk süreçleri MemoryMappedFile kullanarak iletişim kurar
https://www.itsvse.com/thread-10983-1-1.html
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