It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center




9年前关闭。




这是一个有趣的。首先设置:
  • 8GB RAM
  • Windows 7专业版x64
  • VS2010终极

  • 我有一个内存密集型算法,该算法使用LINQ/PLINQ处理数据。最初的实现依赖于PLINQ。单元测试成功。但是值得注意的是,在尝试查看使用PLINQ与LINQ相比可以获得什么样的性能优势时,当禁用并行性时,同一测试因OutOfMemoryException而失败。

    有什么合理的解释吗?我可以始终如一地重现这一点。我没有检查,但是是否可以用尽内存而不是内存,而是根据线程模型分配了一些资源?有想法吗?

    最佳答案

    .net中的单个对象限制为2 GB,即使在64位上也是如此。如果您不使用PLINQ,我可能会猜到某些对象(例如,列表)变得大于2 GB,从而崩溃了。使用PLINQ-因为它分散了工作,所以我猜想它会创建多个都在2 GB以下的列表。

    请发布一些代码,否则将无法提供任何详细信息。

    关于c# - PLINQ与LINQ : OutOfMemoryException for LINQ but not PLINQ [closed],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8073625/

    10-10 19:59