一些参考文献:]
这是此Why is processing a sorted array faster than processing an unsorted array?]的后续内容
r标记中唯一与分支预测有些相关的帖子是[Why sampling matrix row is very slow?
问题的解释:
] >>我正在研究处理排序数组是否比处理未排序数组快(与Java
和C
中测试的问题相同–第一链接),以查看分支预测是否以相同方式影响R
。
请看下面的基准示例:
set.seed(128) myvec <- rnorm(1e8, 128, 128) #or making a vector with 1e7 elements myvecsorted <- sort(myvec) mysumU = 0 mysumS = 0 SvU <- microbenchmark::microbenchmark( Unsorted = for (i in 1:length(myvec)) { if (myvec[i] > 128) { mysumU = mysumU + myvec[i] } } , Sorted = for (i in 1:length(myvecsorted)) { if (myvecsorted[i] > 128) { mysumS = mysumS + myvecsorted[i] } } , times = 10) ggplot2::autoplot(SvU)
带有1e7个元素的矢量
带有1e8个元素的矢量
Java
所示?一些参考文献:这是对此的后续文章。为什么处理排序数组比处理未排序数组快?我发现r标签中唯一与分支预测有些相关的帖子是...
解释器开销,而只是[[be]
解释器,解释了大多数平均差异。我没有较高差异的解释。