gpt4 book ai didi

javascript - 与 null-out 相比,delete 对 Object 效率低下,但对 DOM Element 的数据属性有效?

转载 作者:行者123 更新时间:2023-12-03 10:23:35 24 4
gpt4 key购买 nike

众所周知,与将其设置为 null 相比,在 V8 引擎中从 JavaScript Object删除字段是一个缓慢的操作, 未定义或类似值:http://jsperf.com/delete-vs-undefined-vs-null

但是,不同方法之间的性能差异似乎很小:http://jsperf.com/using-delete-on-dataset 。它甚至比其他一些方法还要快一些。

是什么导致“普通”对象效率低下,为什么它对数据集属性没有任何影响?

最佳答案

对属性表示为存储在固定偏移量的字段(如 C 结构体、Java/C++ 对象等)的对象进行删除将使该对象改用哈希表表示形式。使用字符串查找哈希表比简单地以某个固定偏移量读取内存要慢得多。

因此,如果对象已对其属性使用哈希表表示形式,则执行删除不会影响性能。

关于javascript - 与 null-out 相比,delete 对 Object 效率低下,但对 DOM Element 的数据属性有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29516372/

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