gpt4 book ai didi

c++ - 在散列容器中存储持久性 v8 对象句柄

转载 作者:行者123 更新时间:2023-11-28 07:43:41 25 4
gpt4 key购买 nike

我想存储一个 v8::Persistent<v8::Object>在哈希类型容器中处理(更准确地说是 Google dense_hash_set )。我需要为此实现自己的哈希函数吗?我可以依靠v8::Object::GetIdentityHash吗?哈希值的方法?查看代码,我可以看到它们基本上只是为对象生成一个随机的 32 位数字并将其缓存。这足以避免哈希冲突吗?

最佳答案

我的回答是,是的,它可以用作哈希键,但是......

根据 this , int v8::Object::GetIdentityHash():

Returns the identity hash for this object.

The current implementation uses a hidden property on the object to store the identity hash.

The return value will never be 0. Also, it is not guaranteed to be unique.

它可能会为不同的对象生成相同的键,并且您可能会发生冲突。但是,这还不足以成为放弃此功能的理由。

问题在于保持低碰撞率。这取决于 GetIdentityHash 的分布和哈希表的大小。

您可以测试它并计算碰撞次数并检查它是否会损害您的性能?!

关于c++ - 在散列容器中存储持久性 v8 对象句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15308085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com