为了账号安全,请及时绑定邮箱和手机立即绑定

为什么在java中二维数组的运行速度明显慢于一维数组

为什么在java中二维数组的运行速度明显慢于一维数组

人到中年有点甜 2023-09-20 19:14:11
对于我的一个程序,我需要大内存,我用两种不同的实现来完成此操作,如下:  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];

并且它可以工作,运行正常。


查看完整回答
反对 回复 2023-09-20
  • 1 回答
  • 0 关注
  • 96 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信