我可以使用虚拟内存运行.net应用程序吗?

时间:2019-10-09 15:43:07

标签: .net virtual-memory memory-mapped-files

我的服务器未运行时,我想在磁盘上存储一个通用的db-index,然后在启动时再次加载到内存中。可以序列化它,但是我只是在考虑诸如VirtualBox之类的虚拟机如何捕获正在运行的应用程序的快照并将其存储在磁盘上,然后像恢复应用程序只是将其暂停一样恢复它们。这是如何工作的,有什么办法可以使.NET应用程序执行类似的操作?

我不需要整个应用程序都在虚拟内存中运行,而仅需要例如值字典。内存块的大小可以固定。我想要的是不必手动序列化到磁盘,而只需将运行时位交换到磁盘,最好同时发生。我想放在磁盘上的实际对象比字典要复杂一些,所以我希望避免序列化。但是既然显然那里有技术,那我想也许.NET现在可以支持它了?

再次澄清一下,我正在寻找的是一种在运行时创建一种虚拟内存块,然后在该块上“放置”普通.NET对象并将其状态在退出时刷新到磁盘的方法。然后,在重新启动该过程后,只需再次从此内存快照中重新构建对象即可。通过这样做,我将避免必须手动序列化已经由RAM中的位表示的内容。我还认为这将加快将其持久保存到磁盘并将其重新加载回内存的速度。像这样的技术也可以通过写入来提高效率,而不是每次都只重新更改位,而不必重新序列化整个对象。

我有点知道/假设这不是.NET的一部分,但是我想知道为什么不呢?还有其他支持类似功能的框架吗?有没有我没有的巨大缺点或并发症?强制要求添加它的用例也许并不多,但是感觉似乎几乎应该是基本的东西。

0 个答案:

没有答案
相关问题