gpt4 book ai didi

javascript - Chrome 认为 99,999 与 100,000 截然不同

转载 作者:IT王子 更新时间:2023-10-29 03:10:18 25 4
gpt4 key购买 nike

当有人发布的 jsperf 基准测试与我之前运行的几乎相同的基准测试冲突时,我遇到了一个非常有趣的问题。

Chrome 在这两行之间做了一些截然不同的事情:

new Array(99999);  // jsperf ~50,000 ops/sec
new Array(100000); // jsperf ~1,700,000 ops/sec

基准:http://jsperf.com/newarrayassign/2

我想知道是否有人知道这里发生了什么!

(澄清一下,我正在寻找有关 V8 内部结构的一些底层细节,例如它使用不同的数据结构,其中一个与另一个不同,以及这些结构是什么)

最佳答案

因为这听起来很有趣,所以我在 V8 代码库中搜索了一个定义为 100000 的静态变量,然后我找到了 this kInitialMaxFastElementArray var ,这是随后在 builtin ArrayConstructInitializeElements function 中使用的功能。虽然我不是 c 程序员并且不知道这里的细节,但您可以看到它使用 if 循环来确定它是否小于 100,000,然后 return 以此为基础在不同的点进行调整。

关于javascript - Chrome 认为 99,999 与 100,000 截然不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6711462/

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