【发布时间】:2017-06-11 00:29:03
【问题描述】:
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 秒。
【问题讨论】:
-
读取 same 值高达 17,000 次表明您没有使用正确的数据结构。
-
@NOYB 提出问题的方式是X-Y problem。请提供有关您要实现的目标的更多详细信息。
-
您是如何断定瓶颈一定是您认为“相关”的代码?公认的答案是建议切换语言,因为当不涉及 VBA 代码时,CPU 周期会神奇地更快。如果您想对您的代码进行任何有意义的改进,请将其全部发布到Code Review。在这个网站上,这类问题太宽泛了,请参阅How to Ask。
-
换句话说,你在浪费大家的时间。干杯。
-
您应该知道,这些类型的问题对于程序员/编码类型的人来说可能超级烦人,他们天生就是好奇的人,喜欢解决问题并喜欢提问关于他们被要求帮助的事情的问题。你对完全合理的请求的“你不需要知道”的回应可以被解读为傲慢/不屑一顾,并不完全鼓励任何人提供帮助。
标签: arrays vba performance