Vb6 VB数组中哪个索引变化最快?

Vb6 VB数组中哪个索引变化最快?,vb6,Vb6,使用Visual Basic二维数组时,哪个索引变化最快?换句话说,当填充数组时,我应该写 For i = 1 To 30 For j = 1 To 30 myarray (i,j) = something Next Next 或 (或者它是否有很大的不同)?我不知道是否(或在哪里)指定了此项。它可以保留为“实现定义” 但我希望第一个索引是“较低”的维度,即大的块,而下面的索引位置将更加细粒度 编辑:看来我错了。VB6使用列优先的方法 这有什么区别吗 您必须进行

使用Visual Basic二维数组时,哪个索引变化最快?换句话说,当填充数组时,我应该写

For i = 1 To 30
    For j = 1 To 30
        myarray (i,j) = something
    Next
Next

(或者它是否有很大的不同)?

我不知道是否(或在哪里)指定了此项。它可以保留为“实现定义”

但我希望第一个索引是“较低”的维度,即大的块,而下面的索引位置将更加细粒度

编辑:看来我错了。VB6使用列优先的方法

这有什么区别吗

您必须进行测量,但是使用较低的较高维度作为外部循环将允许编译器生成更快的代码,并且可以更好地利用处理器缓存(局部性)。但是尺寸=30时,我不希望有太大的差异。

我不知道是否(或在何处)指定了此值。它可以保留为“实现定义”

但我希望第一个索引是“较低”的维度,即大的块,而下面的索引位置将更加细粒度

编辑:看来我错了。VB6使用列优先的方法

这有什么区别吗

您必须进行测量,但是使用较低的较高维度作为外部循环将允许编译器生成更快的代码,并且可以更好地利用处理器缓存(局部性)。但是如果尺寸为30,我不会期望有太大的差别。

。VB6和。最快的访问是这样的(尽管如果您只有30x30个元素则无关紧要)

如果您真的想加快数组处理速度,请考虑TIPS中的技巧,这将告诉您如何在底层安全库结构中探查。p> 例如,访问2D SAFEARRAY要比访问1D SAFEARRAY慢得多,因此为了将所有数组项设置为相同的值,绕过VB6的SAFEARRAY描述符并临时创建自己的一个会更快。第33页

您还应该考虑“项目属性编译选项”中的“打开”。

。VB6和。最快的访问是这样的(尽管如果您只有30x30个元素则无关紧要)

如果您真的想加快数组处理速度,请考虑TIPS中的技巧,这将告诉您如何在底层安全库结构中探查。p> 例如,访问2D SAFEARRAY要比访问1D SAFEARRAY慢得多,因此为了将所有数组项设置为相同的值,绕过VB6的SAFEARRAY描述符并临时创建自己的一个会更快。第33页


你也应该考虑“项目属性编译选项”。

值高于30,这绝对是你应该能够测量的(如果你不能,那么,你已经回答了你的最后一个问题)。谢谢,先生们。我已经有一年没有使用VisualBasic了,明天有一次面试,会有人问我关于它的问题。我家里没有VB工作室,我正试着为一些可能的问题做准备。值大于30,这绝对是您应该能够测量的东西(如果您不能,那么,您已经回答了您的最后一个问题)。谢谢,先生们。我已经有一年没有使用VisualBasic了,明天有一次面试,会有人问我关于它的问题。我家里没有VB工作室,正试图为一些可能的问题做准备。实际上VB6使用COM安全阵列,其布局方式是:column major。@MarkJ:好的,谢谢你指出这一点。我会编辑一点。实际上VB6使用的是COM安全数组,它的布局方式是相反的:column major。@MarkJ:好的,谢谢你指出这一点。我会编辑一点。
For i = 1 To 30
    For j = 1 To 30
        myarray (j, i) = something
    Next
Next
For i = 1 To 30 
    For j = 1 To 30 
        myarray (j, i) = something 
    Next 
Next