对于我的一个程序,我需要大内存,我用两种不同的实现来完成此操作,如下: int SIZE = 1000000000; int[] rnums = new int[SIZE]; byte[] d1 = new byte[2 * SIZE]; byte[] d2 = new byte[2 * SIZE]; int SIZE = 1000000000; int[] rnums = new int[SIZE]; byte[][] d1 = new byte[SIZE][2]; byte[][] d2 = new byte[SIZE][2];两个程序都可以工作并产生正确的答案,但是 2D 实现速度非常慢,随着 SIZE 的增加,它变得越来越慢。其余的代码非常相似,我不明白为什么 2D 会导致那么大的延迟。
1 回答
慕容708150
TA贡献1831条经验 获得超4个赞
我已将代码更改为以下代码:
int SIZE = 1000000000;
int[] rnums = new int[SIZE];
byte[][] d1 = new byte[2][SIZE];
byte[][] d2 = new byte[2][SIZE];
并且它可以工作,运行正常。
添加回答
举报
0/150
提交
取消