others - r - 只需幾微秒,如何創建最多20-50萬數字的序列

需要在最短的時間內創建一個數字序列,最好在微秒範圍內,該序列的總長度通常在20至10萬個數字範圍內,但有時我需要創建200至300萬個數字的序列。目前我在R(因為我非常熟悉語言)中實現了代碼。


s <- seq(1, 25, by = 0.0001)



儘管速度非常快,但這需要幾毫秒才能完成


> library(microbenchmark)


> microbenchmark(seq(1, 25, by = 0.0001))


Unit: milliseconds


 expr min lq mean median uq max neval


 seq(1, 25, by = 1e-04) 1.6098 2.14505 3.741858 2.2324 2.3554 83.8912 100



問題是:

1-是否可以使R中的序列生成更快?

2-在某個時候,我需要用另一種(更快的)語言來實現代碼,有沒有一種語言能夠在不到100-200微秒的時間內生成這樣的序列?

时间:

seq.int()快30-40%。


microbenchmark::microbenchmark(


 seq = seq(1, 25, by = 0.0001),


 seq.int = seq.int(1, 250000, by = 1) / 10000


)



# Unit: milliseconds


# expr min lq mean median uq max neval


# seq 2.0749 2.16525 3.375812 2.2222 2.31935 95.9553 100


# seq.int 1.3184 1.35860 1.458503 1.3855 1.42940 6.9268 100



...