我目前正在编写用于读取OBJ文件的API。在这个API中,我有一个矢量列表和一个描述一个面部的类(3个矢量)。
我想考虑一下内存使用情况,所以我想知道面部是否最容易记住矢量数组中矢量的索引,或者它是否应该只有矢量的指针/实例。
此外,C#中的计数是否相同?
答案 0 :(得分:0)
An integer (which your index would be) is 32 bits,引用为either 32 or 64 bits对象is a minimum of 64 bits plus its internals。因此整数的大小相同或略小于引用。但是对象的副本会更大
但严重的是,你不应该担心这个索引到一系列的引用,除非有一些疯狂的数字,你的内存匮乏。当然,这种间接性会有很小的性能损失。无论哪个概念上最有意义,但是如果两者都具有概念意义 - 非常相似的内存占用和更简单的结构,那么您可能希望坚持引用而不是索引到数组。
当然第三个选项是保留对向量副本的引用,这将涉及每个副本的对象的完整内存,除非您需要独立的对象,否则值得避免