打算在程序中定义一个200*200*200=8000000=8M的双字节数组,数组大小不需要变化,只是数组很大。在VB中使用这样的数组可以吗?有什么需要注意的地方?性能怎样?
VB不熟悉,请不要见笑。

解决方案 »

  1.   

    性能足够,无需担心。唯一需要注意的是尽可能连续访问数组,可以提高CPU缓存命中效率。
      

  2.   

    Dim cube(7999999) As Integer
    for i=1 to 200
      for j=1 to 200
        for k=1 to 200
          'my code
        next
      next
    next
    这样可以吧。
      

  3.   

    8M,现在的内存随便都是1G以上的,应该没问题吧。你要是定义个1G大的数组(不管多少维),也许就不能保证正常了。VB会在连续内存上分配数组,要是你随有2G的内存,却没有连续的1G大的内存,那就惨了。比如dim a(10*1024,10*1024)as long成功dim a(11*1024,10*1024)as long失败但是
    dim a(10*1024,10*1024)as long,b(5*1024,10*1024) as long 竟然成功了