c++ 12位变量,我该怎么做?

标签 c++ memory-management voxel

我正在构建一个体素引擎,因此我担心内存使用情况,使用 12 位而不是 16 位 block ID 可以节省大量内存。我有一个 3D block id 数组,每个 id 都有一个静态配置。

我不确定实现这一目标的好方法是什么。有没有一种方法可以获取一 block 原始内存并自己管理它,这是一个好主意吗?我可能会遇到什么问题吗?有更好的方法吗?

我有一些 c++ 经验,但大部分时间都花在 Java 和 c# 上。

感谢您的阅读!

最佳答案

这是可能的,例如:-

  • 保留一个 8 字节变量(存储 5 个变量,每个变量 12 位),或者
  • 使用 char[k] 保留 k~ceiling{(12*n)/8.0f},然后使用 union 等....

这是一个链接(我就是问这个问题的人),我了解了如何在 block 中分配内存。
How to use void* as a single variable holder? (Ex. void* raw=SomeClass() )

但是,我不太同意你想要做的事情。

据我所知,您的方法的缺点是:-

传统建议:在(过早)优化它之前对其进行分析。

关于c++ 12位变量,我该怎么做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43152077/

相关文章:

c++ - 静态成员函数和全局函数有什么区别?

c++ - 从 2 个不同的 DLL 中释放内存

python - 山脉的衰减函数

raytracing - 光线追踪 : Bresenham's vs Siddon's algorithm

linux - userfaultfd 现在是否支持文件备份映射?

python - 使用 numpy 数组中的索引执行计算和比较

c++ - Pthreads 和结构 C++

c++ - __attribute__((format(printf, 1, 2))) 用于 MSVC?

c++ - 在模板化模板参数上专门化模板类构造函数

delphi - 我在这里造成内存泄漏吗?