【发布时间】:2020-08-12 21:51:33
【问题描述】:
我正在尝试用 JavaScript 和画布制作 Conway 的生命游戏,我有一个 1280x720 的矩阵用于存储单元格数据,我目前将数据存储为 1 = 活着,0 = 死亡,然后当我检查一个细胞是否活着时,我只是这样做:if(matrix[i][j])
我很好奇这是否可以改进并在
https://jsbench.me/ 复制了一个类似的场景并注意到如果使用“真/假”,整个事情会慢 +-11%,为什么会这样?不是应该更快吗?
示例基准,只需将 1 更改为 true 即可测试其他场景
let array = []
for(let i = 0; i<1000000; i++){
array.push(1)
}
let sum = 0
for(let i = 0; i<1000000;i++){
if(array[i]){
sum++
}
}
【问题讨论】:
-
你能分享你的基准代码吗?如果您使用的是布尔值,它应该是相同的,但可能还有其他事情会导致这一点。
-
@PatrickRoberts 我更新了问题
-
@PabloKvitca 更新
-
您在哪个浏览器中测量了性能?
-
@PatrickRoberts Google Chrome
标签: javascript arrays performance v8