nku*_*har 5 java arrays initialization
为什么
long t = System.currentTimeMillis();
int size = 3333333;
int[][][] arr = new int[size][6][2];
// int[][][] arr= new int[2][6][size];
pr(System.currentTimeMillis() - t );
Run Code Online (Sandbox Code Playgroud)
打印5000 ms
但是
long t = System.currentTimeMillis();
int size = 3333333;
// int[][][] arr = new int[size][6][2];
int[][][] arr= new int[2][6][size];
pr(System.currentTimeMillis() - t );
Run Code Online (Sandbox Code Playgroud)
版画 44 ms
第二种解决方案115次更快
测试更简单 int[][]
int[][] arr = new int[size][2];
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您必须分配size大小为16字节的内存块.
在这种情况下
int[][] arr = new int[2][size];
Run Code Online (Sandbox Code Playgroud)
你只需要分配2个大小*8字节的内存.
分配是昂贵的操作.