sample
R 의 함수를 벤치마킹 하고 비교 igraph:sample_seq
하여 이상한 결과를 얻었습니다.
내가 다음과 같은 것을 실행할 때 :
library(microbenchmark)
library(igraph)
set.seed(1234)
N <- 55^4
M <- 500
(mbm <- microbenchmark(v1 = {sample(N,M)},
v2 = {igraph::sample_seq(1,N,M)}, times=50))
나는 다음과 같은 결과를 얻는다 :
Unit: microseconds
expr min lq mean median uq max neval
v1 21551.475 22655.996 26966.22166 23748.2555 28340.974 47566.237 50
v2 32.873 37.952 82.85238 81.7675 96.141 358.277 50
하지만 예를 들어 달리면
set.seed(1234)
N <- 100^4
M <- 500
(mbm <- microbenchmark(v1 = {sample(N,M)},
v2 = {igraph::sample_seq(1,N,M)}, times=50))
나는 훨씬 빠른 결과를 얻는다 sample
:
Unit: microseconds
expr min lq mean median uq max neval
v1 52.165 55.636 64.70412 58.2395 78.636 88.120 50
v2 39.174 43.504 62.09600 53.5715 73.253 176.419 50
이 경우 것 같다 N
(10)의 전원 (또는 다른 특수 번호는?)입니다, sample
작은 훨씬 빠르게 다른보다 N
10의 거듭 제곱되지 않은이 예상되는 동작 아니면 내가 뭔가를 놓친 거지?