ObjectBox 可分配 ID 的性能损失
Performance penalty of ObjectBox assignable ids
ObjectBox 文档建议对元素使用可自动分配的 long
id,它甚至有一些基于它的检查:
By default object IDs are assigned by ObjectBox. For each new object, ObjectBox will assign an unused ID that is above the current highest ID value used in a box. For example, if there are two objects with ID 1 and ID 100 in a box the next object that is put will be assigned ID 101.
http://objectbox.io/documentation/introduction/#Object_ID_assignment
如果我们有自定义键,我们可以添加 @Id(assignable = true)
,它将使用给定的字段作为 id。
但是,我在某处读到它会增加一些性能开销,最好尽可能使用标准的自动递增的。我现在找不到来源,所以有人知道对经常更改的对象使用可分配 ID 是否可以吗?另外,ObjectBox有没有用到equals()
和hashCode()
?
我们使用可分配 id 的主要原因是能够 put
元素使用其自然 long
id 而无需手动解析映射。
据我了解,根据官方文档和 Marcus Junginger(ObjectBox 的 CTO)的评论,当您使用可分配的 id 时,没有 性能损失。
ObjectBox 文档建议对元素使用可自动分配的 long
id,它甚至有一些基于它的检查:
By default object IDs are assigned by ObjectBox. For each new object, ObjectBox will assign an unused ID that is above the current highest ID value used in a box. For example, if there are two objects with ID 1 and ID 100 in a box the next object that is put will be assigned ID 101.
http://objectbox.io/documentation/introduction/#Object_ID_assignment
如果我们有自定义键,我们可以添加 @Id(assignable = true)
,它将使用给定的字段作为 id。
但是,我在某处读到它会增加一些性能开销,最好尽可能使用标准的自动递增的。我现在找不到来源,所以有人知道对经常更改的对象使用可分配 ID 是否可以吗?另外,ObjectBox有没有用到equals()
和hashCode()
?
我们使用可分配 id 的主要原因是能够 put
元素使用其自然 long
id 而无需手动解析映射。
据我了解,根据官方文档和 Marcus Junginger(ObjectBox 的 CTO)的评论,当您使用可分配的 id 时,没有 性能损失。