2008-12-10 29 views
12

Bir projem var ve ASP.NET'teki büyük miktarda özel verilere erişmesi gerekiyor. Bu, paylaşımlı belleğe veri yükleyerek Linux/PHP üzerinde yapıldı. Memory Mapped Files'ı kullanmaya çalışmanın mı yoksa daha iyi bir .NET desteğiyle daha iyi bir yol olup olmadığını merak ediyordum. Veri Önbelleğini kullanmayı düşünüyordum, ancak Önbellekte saklanan veri boyutundaki tüm tuzaklardan emin değilim.Bellek Eşlenen Dosyalar .NET

cevap

10

C# için Bellek Eşlenmiş bir kitaplık arıyorsanız, Tomas Restrepo's filemap sarıcısına bir göz atın. LGPL kapsamında lisanslıdır.

3

Bellek Eşlenen dosyalar, çok miktarda veri olduğunda ve işlem sınırları boyunca bu ürünlerin fiyatlandırılması maliyetine katlanmak istemediğinizde kullanılabilir. Bunu benzer bir amaç için kullandım. MMF'lerden yararlanmak için .NET'teki güvenli olmayan ve sabitlenmiş bellek kavramlarıyla oldukça rahat olmanız gerekir. Apparently, Enterprise Library'nin önbelleğe alma bloğu, temel C# API'yi saran bir kod içerir. Başka bir yerde en az bir başka uygulama gördüm.

Satış maliyetiyle yaşayabiliyorsanız, bir çeşit .NET remoting çözümü kullanmak daha kolay ve daha zarif olur.

1

Sadece önbellek [] nesnesine atmak isteyebilirsiniz. Gerçek dosyaya göre bir önbellek son kullanma tarihi belirleyebilirsiniz. Daha sonra, gerçek dosyayı değiştirdiğinizde, içerik önbellekteki nesne için boş olacak ve yeniden yükleyebilirsiniz. Çok sayıda baytla uğraşırken bu uygun olmayabilir.

byte[] fileBytes = Cache["fileBytes"]; 
if (null == fileBytes) { 
    // reload the file and add it to the cache. 
    string fileLocation = Server.MapPath("path/to/file.txt"); 
    // Just a same of some bytes. 
    fileBytes = new byte[10]; 
    Cache.Insert(fileLocation, fileBytes, new System.Web.Caching.CacheDependency(fileLocation)); 
} 

Önbelleğin performans özellikleri ve büyük miktarda veri hakkında belirli bir cevabım yok. http://www.alachisoft.com/ncache/asp-net-cache.html Uygulamanız ve önbellek arasında paylaşılması gereken 2 ile 3 gr önbellek alanı arasında aldığınız durumlar.

İlgili konular