我正在研究生成大量类(百万)实例的程序。这个课程非常简单,只需要3个花车。浓缩3漂浮到uint64_t
现在这些花车可以存在的范围在0到1之间(颜色值),并且通常它们是非常简单的值(1,0.5,0.25,0)。为了节省内存,我认为让这些类的池最好,因为它们只用于只读环境,所以它们可以在多个地方共享指针样式。
我认为将这些对象存储在unordered_map中会起作用,并且会使用uint64_t的键值。密钥的值将是每个浮点数的高21位。
是否有一种简洁的方式来获得每个浮点数的高21位,并将它们放在一起成为一个64位整数?
或者这只是一个愚蠢的方式去做这件事?我不确定这是否有效或有利,但如果它有效,我将把它扩展到程序中的其他类别(位置值,形状等可能最终共享值)
3个浮点数在大多数平台上占用12个字节。算一算。除非你在嵌入式平台上工作,否则可能不值得。 – 2011-06-10 19:11:41