我想知道是否有可能明确声明C#应用程序应使用哪种内存类型(物理或虚拟内存)来执行不同的操作?让我通过一个例子来解释一下:
可以说,我的文件大小约为100或200 MB。我需要解析该文件,访问并分析其内容,并对文件内容执行操作。我是否可以将整个文件及其内容专门存储在虚拟内存中而不是物理内存中?
如果有可能,那么是否应该记住任何副作用/预防措施?
我的问题背后的原因是,我经常不得不处理如此大的文件或数据集(从数据库中检索)并对其执行操作,其中的一部分不需要顺序发生或同步。如果可能的话,我想通过并行化非顺序部分来提高应用程序的执行时间和性能。
通常,您不(也不需要)对如何管理物理内存有任何了解。在Windows中,因此在CLR中,所有内容都是虚拟内存。
除非您有特定的问题,否则您应该假装一切都是物理内存。
您可以依靠操作系统来智能地确定应将哪些内容保留在物理内存中以及可以将哪些内容换出。交换仅在存在内存压力的情况下发生,即,如果您分配的内存多于物理可用内存。
此外,如今100-200 MB的存储量还不够。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句