给定两台电脑
- Core i5 第三代 4GB RAM(戴尔 Optiflex 7010)
- 酷睿 i7 第二代 16GB RAM(三星 700G7C)
更新 1 - 有趣的是,将 T 的属性数量减少两倍没有任何变化,发生 OOM 的集合中 T 的数量保持不变......
拿平均低频,我只是没有他们手。
谁能向我解释一下,为什么第一台 PC 上运行良好的代码在第二台 PC 上 100% 失败并出现 OutOfMemoryException?考虑到第二台 PC 的成本要高出 3 倍,这真的很烦人。
我不能在这里发布整个代码,但它非常简单 - 一个 List 填充有 T,其中 T 是一个具有 5 个 Integer 属性的 CLR 对象。第一台 PC 处理 2500 万个对象没问题(这就是我所看到的,它可能可以处理更多),而第二台 PC 大约死了。1650 万条记录。我知道单个对象的内存限制,但它真正让我明白的是它如何在两台相当现代的 PC 之间偏离这么多(50%++)?