你问的是错误的问题.如果堆栈大小很重要,那么你做错了什么.
如果使用许多数据点,则将它们放在一个集合中,例如数组.总是在堆上分配数组.结构数组嵌入各个结构并形成连续的内存块.(如果你有超过2GB,你需要几个数组).
而对于引用类型,数组将只包含引用,并且对象在堆上单独分配.堆分配有大约16个字节的开销,数组中的引用占另外8个.
由于间接性,你也会得到更糟糕的缓存局部性,并且GC必须做更多的工作,来抓取所有这些引用.
我的结论是,如果你有许多小数据点,那么将它们作为结构,并将它们放在一个数组中.
| 归档时间: |
|
| 查看次数: |
900 次 |
| 最近记录: |