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



...