一尘不染

C#:内存不足异常

c#

今天,我的申请今天抛出了OutOfMemoryException。对我来说,这几乎几乎是不可能的,因为我也有4GB
RAM和很多虚拟内存。当我尝试将现有集合添加到新列表时发生了错误。

List<Vehicle> vList = new List<Vehicle>(selectedVehicles);

据我了解,这里没有分配多少内存,因为我的新列表中应该包含的车辆已经存在于内存中。我不得不承认这Vehicle是一个非常复杂的类,我试图一次将大约50.000个项目添加到新列表中。但是,由于Vehicle应用程序中的所有s都来自大小仅为200MB的数据库:目前,我不知道可能会导致什么OutOfMemoryException


阅读 245

收藏
2020-05-19

共1个答案

一尘不染

两点:

  1. 如果您运行的是32位Windows,则将无法访问所有4GB内存,而只能访问2GB。
  2. 不要忘记的底层实现List是一个数组。如果您的内存非常分散,则List即使您总共有足够的可用内存,也可能没有足够的连续空间来分配您的。
2020-05-19