【问题标题】:big array array of array of ints - out of memory [closed]整数数组的大数组数组-内存不足[关闭]
【发布时间】:2014-05-01 19:24:05
【问题描述】:

我正在寻找一组的所有分区。对于包含 12 个数字的集合,没关系,但对于 13,我会出现内存不足异常。 我确信我的算法。它给了我很好的结果和很好的子集数量。对于 1, 2, 3... 12.. 然后我尝试获得 13 并且有问题。

他们有多少:WOLPHRAM STRILING

有什么办法可以增加内存吗?或者至少写一个方法,它会给我关键字 out 动态分配的参数数量?

我正在使用第二篇文章中的代码: Code of partitioning

【问题讨论】:

  • 请发布一些代码,您的代码可能使用的内存过多。
  • 编辑帖子并添加链接
  • 您需要一次将所有分区保存在内存中吗?还是您只需要将它们全部计算为练习?调用Partitioning.GetAllPartitions 的代码在做什么?
  • 您可以计算所有可能的集合,但是您需要一次将它们全部存储在内存中吗?您可以根据需要生成它们以用于您的问题吗?您可以使用多处理或分布式计算机或云来计算具有不同分区集的部分问题吗?
  • 我意识到这些问题不是您要问的,但是如果您在 32 位进程中,除了转移到 64 位进程之外,我认为您将不得不解决优雅递归算法的物理计算限制。

标签: c# arrays


【解决方案1】:

如果我正确地假设您正在尝试做的事情:

正在尝试在 LOH 上分配大约 630 MB!如果您运行的是 32 位应用程序,那么 whis 将无法正常工作 - 因为 .net 总共可以使用 1.4 GB!

在 64 位进程上,您应该更进一步:.Net Why can't I get more than 11GB of allocated memory in a x64 process?

希望这能让事情变得更清楚一点!

编辑 您正在处理的称为“维度诅咒”

http://en.wikipedia.org/wiki/Curse_of_dimensionality

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-25
    相关资源
    最近更新 更多