1.45亿个数组读取需要6秒。怎么能更快?
Dim X As Integer
X = 0
For Y = 1 To 17000
For Yn = Y To 17000
d = Ary(Yn, X)
Next
Next
Ary(Yn,X)是变体/日期 Ary大小约为17000 x 7
没有数组读取的循环是1.5秒。数组读取增加6.5秒。
答案 0 :(得分:4)
您的代码不完整或无意义。你读取数组的值为144,508,500万次,但是你丢弃了144,508,499次的结果。
如果你只关心最后的结果,我会为你优化:
Dim X As Integer
d = Ary(17000, X)
告诉我们您真正想做的事情,并提供更好的答案。
您可以做一些一般事情:
不要使用Variant / Date数组 - 变量使用更多内存,如果从Excel中读取它们,则保留区域的日期格式会有一些开销。使用Date数组会更好,而且我怀疑,使用双打阵列会更好。
假设您打算进行某种日期比较,那么您将多次重读多行。查看使用Dictionary对象,您可以显着减少读取次数。