赞 | 2 |
VIP | 143 |
好人卡 | 1 |
积分 | 1 |
经验 | 216792 |
最后登录 | 2019-10-10 |
在线时间 | 24 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 61
- 在线时间
- 24 小时
- 注册时间
- 2008-8-5
- 帖子
- 1924
|
默认脚本限制了开关的数组(开关的容器)体积为 5000,所以在二十一世纪的家用机上基本没影响,不过理论上,如果你取消了这个上限,当你的数组超过一定体积,当 CPU 的 L1 Cache,甚至 L2 Cache 都容纳不下可寻址的数组元素时,就会造成引用局部性的降低,减少 Cache 的命中率,降低内存操作的效率,而内存操作效率的降低也会直接导致程序时间效率的损失
实际上只是使用开关就超过 Cache 大小的游戏是很难想象的,以英特尔奔腾早期的 P5 处理器为例,8 KB 的数据 Cache,如果一个开关占用 4 bytes,需要 2000 以上的开关数量才能超过 L1 Cache,想必你还没用到 2000 个吧?
在二十一世纪,数据量低于一万的时候,基本可以考虑为“常量”空间,不必太过担心空间效率的问题。不过尽量紧密分配线性数据是一个好习惯,如果你用了 1 号开关,用了 4999 号开关,而中间有大量闲置开关,这也是一种空间浪费,所谓勿以恶小而为之,保护环境,人人有责 |
|