Java保留对象的实例并保留对象的索引

标签 java c# memory

我目前正在编写用于读取 OBJ 文件的 API。在这个 API 中,我有一个 vector 列表和一个描述人脸的类(3 个 vector )。

我想考虑内存使用情况,所以我想知道面部是否最聪明地记住其 vector 在 vector 数组中的索引,或者它是否应该只具有 vector 的指针/实例。

此外,在 C# 中是否也一样?

最佳答案

An integer (which your index would be) is 32 bits , 引用是 either 32 or 64 bits一个对象 is a minimum of 64 bits plus its internals .因此,整数与引用大小相同或略小。但是对象的副本会大很多

数组或引用的索引

但是说真的,你不应该担心这个引用数组的索引,除非引用数组的数量多得离谱并且你的内存不足。当然,这种间接寻址会有一点性能损失。做任何在概念上最有意义的事情,但如果两者都在概念上有意义,您可能希望坚持使用数组的引用而不是索引 - 非常相似的内存占用和更简单的结构。

vector 副本

当然,第三种选择是保留对 vector 副本的引用,这将涉及每个副本的对象的完整内存,除非您需要独立的对象,否则值得避免

关于Java保留对象的实例并保留对象的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23849758/

相关文章:

java - 需要矩阵搜索算法

java - 如何从Hashmap构成的listview中获取特定textview的值?

c# - 在关闭时使WPF应用程序保持事件状态

c# - 在 Google App Engine 上从 Java 调用 C# dll

c++ - 追踪内存损坏的具体调试技巧/工具?

Java新手尝试将字符串传递给实例java

java - Selenium 驱动程序 - 窗口句柄搞砸了

c# - ASP.net c# 母版页问题

c++ - 编译器如何以及在内存中的什么位置存储有关变量类型的信息?

无法理解涉及指针的 C 程序的一小部分