最高效的内存管理C#

时间:2014-09-09 08:54:24

标签: c# memory-management marshalling

我将很快为我的学位做一个项目,需要强力文本处理和分析。这显然意味着大量读写RAM。

C#中最有效的内存管理方法是什么?上个学期我被介绍到memory marshal class并发现这是一种非常有效的方法来读取和写入大量数据到RAM,但也许这只是我的经验。我希望有人能就C#内存管理的替代方案或最佳实践给我一些建议或建议。

由于

1 个答案:

答案 0 :(得分:4)

最有效的内存管理系统与您在实践中尝试的内容大相径庭。

根据经验,尽量避免使用C#中的非托管代码:托管内存对于绝大多数问题来说已经绰绰有余了,除非你确切知道该做什么,否则你不太可能更多效率高于托管内存。

所以我的建议如下。尝试一个完全托管的实现,有一些好的做法可以防止使用太多的内存:

  • 始终丢弃您的一次性物品
  • 尝试共享重型资产,例如字节缓冲区:而不是每次需要时都创建一个新缓冲区,使用缓冲池

如果您获得经验证据表明您需要进行手动编组,那么请了解并使用它。但不是之前。

请记住,很多人都在从事C#内存管理工作,并且大多数C#开发人员都不需要更多(他们中的很多人甚至不知道内存管理是如何工作的。场景,因为他们根本不需要)。 C#中的托管内存非常好,先给它一个镜头。