gpt4 book ai didi

c# - C#中的内存管理

转载 作者:太空狗 更新时间:2023-10-30 00:02:12 25 4
gpt4 key购买 nike

下午好

我有一些文本文件,其中包含通过分析报纸文章语料库收集的(2 克,计数)对列表,当我启动我正在开发的给定应用程序时,我需要将这些文章加载到内存中。为了存储这些对,我使用了如下结构:

private static Dictionary<String, Int64>[] ListaDigramas = new Dictionary<String, Int64>[27];

拥有一系列字典的想法是由于效率问题,因为我在某处读到过长字典对性能有负面影响。也就是说,每个 2-gram 都会进入与其第一个字符的 ASCII 码减去 97 对应的字典(如果第一个字符不是从“a”到“z”范围内的字符,则为 26)。

当我将 (2-gram, count) 对加载到内存中时,应用程序总共占用 800Mb 的 RAM,并且一直保持这种状态,直到我使用名为 Memory Cleaner 的程序来释放内存。在此之后,程序占用的内存会下降到 7Mb-100Mb 的范围内,而不会失去功能(我认为)。

有没有什么方法可以通过这种方式释放内存而不使用外部应用程序?我尝试使用 GC.Collect() 但它在这种情况下不起作用。

非常感谢。

最佳答案

您使用的是静态字段,所以一旦它被加载,它就永远不会被垃圾收集,所以除非您对该字典调用 .Clear() 方法,否则它可能不会受到垃圾回收。

关于c# - C#中的内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3960345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com