(.Net)使用内存映射文件的简便方法。就像一个变量

问题描述 投票:0回答:1

我正在开发一个ASP.NET Web应用程序。它需要大量的RAM。因此,我正在考虑内存映射文件。

但是,实现内存映射文件非常耗费精力。它需要使用那些内存地址,SizeOf运算符等。(我已经没时间了)。

当前系统使用大字典来存储大量数据。所有类都是[Serializable]。有没有办法结束对像这样的内存映射文件的访问,

(C# Psedo-code)    
var WrittingObject = new blablabla;
SetMMFVariable(name: "var1", value : WrittingObject);
var ReadingObject = GetMMFVariable(name: "var1");

在.NET中是否有内存映射文件的包装代码?在那里我不必担心那些内存地址和其他东西。

c# asp.net memory-management shared-memory memory-mapped-files
1个回答
1
投票

这将成为数据库的理想选择!您遇到的问题是一次序列化/反序列化大量信息。如果您需要读取或更新一小段信息,则需要扫描整个文件以更新SINGLE记录。这太疯狂了!

解决方法是使用一些结构化数据模型。您可以分发模型读/写以使用OS上的许多小文件(受到损坏,DISK问题,权限问题,多次访问和文件锁定)来解决上述序列化问题,或者您可以转到实际的数据库将允许您查询和更新/插入所需的信息。

对于结构化模型(c#很擅长),请查看Sql Server Express https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/sql-server-express-localdb?view=sql-server-2017

对于非结构化信息(json),请查看像couchbase https://docs.couchbase.com/dotnet-sdk/2.7/start-using-sdk.html这样的非关系型信息

© www.soinside.com 2019 - 2024. All rights reserved.