使用大数组时,代码速度极慢

时间:2013-10-13 16:09:32

标签: java arrays memory

我有一个程序在使用大数组时运行速度非常慢。

我在最终代码中使用int[3000][3000]String[27000]String[5000]数组。这段代码需要永远运行。这可能是因为阵列占用太多空间吗?

2 个答案:

答案 0 :(得分:2)

这取决于您操作数据的算法的复杂程度。用。这决定了当你开始在其中投入更多数据时需要花费多少时间(通过使数组越来越大)。如果你只是迭代数据,那么它将是O(n)的顺序,这意味着它将与提供的数据量成正比;因此,如果您将数组的长度加倍,则执行程序需要两倍的时间。比方说,如果你将每个元素与另一个元素进行比较,那就意味着它将在O(n ^ 2)的数量级上,所以如果你将数组的长度增加一倍,处理它们需要大约四倍的时间。

你必须发布你的程序,让我们知道你的算法是否只是复杂的计算机才能处理。

另见:Big O notation

答案 1 :(得分:-3)

许多因素:

  1. 处理器处理速度。
  2. 内存分配
  3. 3000 * 3000 * 4字节= 36 * 10.00.000字节= 338 MB
  4. 使用清单