You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于R 4.2.0至4.3.1中&操作(惰性求值)性能反转的问询

向量逻辑&操作的惰性求值性能基准测试差异问题

以下是用于对比向量中利于或不利于惰性求值的相反条件下&操作性能的基准测试代码:

set.seed(1)

N <- 1e6
V <- runif(N)
v1 <- V > 0.1
v2 <- V > 0.4
v3 <- V > 0.9

mb_res_le <- microbenchmark::microbenchmark(
  times = 100, unit = "ms",
  v1 & v2 & v3, v3 & v2 & v1
)

ggplot2::autoplot(mb_res_le)

性能对比图

我理解R 4.2.0的测试结果:当&左侧存在更多FALSE时,因惰性求值机制,代码执行更快。但R 4.3.1中相同测试的结果却完全相反,这让我无法理解。

4.2.0与4.3.1之间有多个版本,该变化可能在其中某个版本引入,但我在对应版本的发行说明中找不到相关解释。

R 4.3.1的结果令我惊讶,因此我测试了更早的版本,这些版本的性能差异符合我的预期。

[已添加set.seed(1)并更新图表]

内容的提问来源于stack exchange,提问作者B.Gao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 17:02:07