做LeetCode题目时候,发现创建二维数组时,把小的放前面大的放后面比反过来占用内存小,即int[10][1000000]比int[1000000][10]占用内存小。
这让我很奇怪,原以为总共长度一致,应该一样啊,然后自己在开发工具里试了试。得到如下结论。
创建10个int[10000000](约160ms)比10000000个int[10](约7ms)长度的数组要慢
但是创建int[10][10000000](约170ms)比int[10000000][10](约7000ms)要快很多
总结原因,因为指向时间长,10个int[10000000]和int[10][10000000]基本没有区别,只需要指向10次,但是int[10000000][10]要指向10000000次
指向占用时间,也占用内存,所以出现开头的事情也不奇怪了。
数组创建时间趣谈
最新推荐文章于 2021-01-26 19:05:21 发布