您永远不应该设计任何必须同时在内存中存储数十万个东西的东西。在你不需要的时候卸载东西。你知道100,000是多少吗?取一个字节并乘以 100,000 得到一个 MB。对于记录中的每 1 个字节的数据,您将生成 1MB 的内存。记录 100,000 个整数需要 4MB。
如果您的记录有 2 20 个字符串(名字和姓氏),则字符串字符用 8 个字节表示,因此您刚刚用 640 MB 的内存填充了名字和姓氏。大多数“坏”电脑都有什么…… 2GB 内存?Good Job 占了其中的 1/4。即使您设法通过超人的超级位移将其截断到 ByteArray 级别,您仍然在谈论将数据减少 8 倍。所以现在您只有名字和姓氏的 80MB,而没有其他数据。你可以靠它生存——除了我怀疑你的记录有比 2 个字符串更多的数据。20串?您正在消耗 800MB 的数据。一次卸载除 100 条记录之外的所有内容,这些名称的内存减少到 640KB。是的,您可以在排序时加载和卸载。
内存块的复制速度不会比字节快。全部都是一样。对象向量在切换时表现出色的原因是它们切换引用/指针/单个 32 位/64 位数字,而不是复制内存块。
不清楚你在排序什么。字节最多只能达到 256 的值,因此很明显,您为每条记录使用的字节数多于 1。您想评估每组...比如 2000+ 字节与另一组 2000+ 字节的对比?就像“啊,姓氏是字节 32-83,所以提取这些字节,对于每组 4 个字节,分别将它们位移 0、8、16、32 位,将它们加在一起,将它们的整数值连接成一个字符串,做比较,现在将字节 84-124 与下一个选项中的字节进行比较,现在将字节 0-2000 传输到位置 443530-441530 并且......这些记录中是否有可变长度的字符串或数组?哦,上帝.
Flash 不是在汇编中写入的地方!
Use objects and test the speed & memory consumption. If either makes you cry, use more conventional methods of reducing load; like offloading materials temporarily into text files. The ugliest you should be getting is avoiding objects by storing each individual property in a different Vector. Vector., etc and having the same index refer to one record across the board.