代码之家  ›  专栏  ›  技术社区  ›  Artur

.Net自定义堆生成

  •  1
  • Artur  · 技术社区  · 7 年前

    在.Net中是否可以创建“自定义”堆,在此堆上分配对象,并在不运行GC的情况下确定地对其进行处置?

    我有很多大的文本文件作为字符串加载到内存中,它们应该在内存中直到处理结束。在完成处理之后,我想处理所有这些字符串,但它们不是.Net中的一次性字符串。由于在加载过程中创建了许多大对象,GC工作得很辛苦,而且大多数对象都在Gen2(和LOH)上完成,这可能需要花费太多时间,直到GC执行自动收集。我可以调用GC.Collect()来释放内存,但在加载期间对GC的压力仍然是个问题。

    我想告诉运行时在没有GC感知的内存块中分配所有这些字符串,并在处理完成后确定地处置该块。

    0 回复  |  直到 7 年前