【发布时间】:2017-09-03 09:30:14
【问题描述】:
有时我会将某些系统的状态存储为整数。我经常发现自己对这些状态使用较小的值(比如 1-10),因为系统相对简单。
一般来说,存储小的正整数的变量的最佳声明是什么 - 其中 best 被定义为最快的读/写时间和最小的内存消耗? Small 在这里定义为 1-10,尽管整数存储方法及其范围的完整列表会很有用。
最初我使用Integer,因为它使用较少的内存。但后来我了解到情况并非如此,因为它被默默地转换为 Long
然后我出于上述原因使用了Long,并且知道它使用的内存少于Double
我后来发现Byte 并切换到它,因为它存储较小的整数(0-255 或 256,我不记得是哪个),而且我猜它的分钟名称使用更少的内存。但我不太信任 VBA,我想知道这里是否也完成了任何内部类型转换。
Boolean我以为只有0或1,但我读到任何非零数字都被转换为True,这是否意味着它也可以存储数字?
【问题讨论】:
-
在您拥有至少 1GB 的内存可供使用的情况下,为什么还要关心 Byte 和 Long 之间的区别? MS 显然认为使用 Long 的好处大于使用 Integer 所隐含的节省。当您开始使用以该货币存储的值时,字节会转换成什么?
-
您是否考虑过使用枚举而不是普通整数?在设计方面,易于阅读的枚举可能比将状态人工编码为数字或字节更合适。
标签: vba excel optimization types