为什么执行时间为现在?两倍长可见?在 ruby/watir?
Why is the execution time for present? twice as long as visible? in ruby/watir?
阅读了几个网页后,其中 Testing by Justin Ko 说
- 存在吗? – Returns 这个元素是否真的存在。
- 在吗? – Returns 如果元素存在并且在页面上可见则为真
- 可见? – 如果任何父元素不可见,则我们无法写入该元素。确定这一点的唯一可靠方法是遍历 DOM 元素树,检查每个元素以确保它可见。
从那个
- 我会预测存在吗?将是最快的,因为它只检查元素是否存在。
- 那个礼物?将是第二快的,因为它检查是否存在和可见性。
- 那个看得见?将是最慢的,因为(正如我所读)它还必须迭代 DOM 元素树。
简单地检查一个元素听起来像是常数时间,而迭代听起来像是线性时间。
我碰巧 运行 进行了一些时间测试,并认为对上述方法进行计时也会很有趣。我的一个预测是错误的。
存在吗?最快;进来只是比可见的快一点?
然而,现在?大约是可见速度的两倍?
我尝试以不同的顺序调用这些方法,并将它们包含在 1.upto(10) 循环中以平均时间。相同的结果。
这里发生了一些我不明白但我想了解的事情。有谁知道为什么要呈现?需要大约两倍的可见时间?或者至少有一个假设?
礼物有意义吗?是最慢的,因为它检查存在 AND 的可见性。
def present?
exists? && visible?
end
只要存在就需要那么长的时间才有意义吗?可见?合并。
阅读了几个网页后,其中 Testing by Justin Ko 说
- 存在吗? – Returns 这个元素是否真的存在。
- 在吗? – Returns 如果元素存在并且在页面上可见则为真
- 可见? – 如果任何父元素不可见,则我们无法写入该元素。确定这一点的唯一可靠方法是遍历 DOM 元素树,检查每个元素以确保它可见。
从那个
- 我会预测存在吗?将是最快的,因为它只检查元素是否存在。
- 那个礼物?将是第二快的,因为它检查是否存在和可见性。
- 那个看得见?将是最慢的,因为(正如我所读)它还必须迭代 DOM 元素树。
简单地检查一个元素听起来像是常数时间,而迭代听起来像是线性时间。
我碰巧 运行 进行了一些时间测试,并认为对上述方法进行计时也会很有趣。我的一个预测是错误的。
存在吗?最快;进来只是比可见的快一点? 然而,现在?大约是可见速度的两倍?
我尝试以不同的顺序调用这些方法,并将它们包含在 1.upto(10) 循环中以平均时间。相同的结果。
这里发生了一些我不明白但我想了解的事情。有谁知道为什么要呈现?需要大约两倍的可见时间?或者至少有一个假设?
礼物有意义吗?是最慢的,因为它检查存在 AND 的可见性。
def present?
exists? && visible?
end
只要存在就需要那么长的时间才有意义吗?可见?合并。