Сообщение от ffinder
Цикл заполнения массива выполняется 20 раз
|
Не 20, а 21, хотя потом время делишь на 20.
В данном конкретном случае можно немного оптимизировать
Local Time1% = MilliSecs()
Local Voxels%[512 * 128 * 512]
Local Time2% = MilliSecs()
Local n% = 0
For i = 0 To 20 - 1
For x = 0 To (512 - 1) Shl 16 Step 1 Shl 16
For y = 0 To (128 - 1) Shl 9 Step 1 Shl 9
Local xy% = x Or y
For z = 0 To 512 - 1
Voxels[xy Or z] = n
n = n + 1
Next
Next
Next
Next
Local Time3% = MilliSecs()
Print(Str(Time2 - Time1))
Print(Str((Time3 - Time2) / 20))
Input("")
End
В результате у меня аллокация ~0мс (ну это понятно, память со стека берется), заполнение ~210мс
ЗЫ
Твой вариант: аллокация ~244мс, заполнение ~5740мс
проц P-4 Prescott 3Ghz
ЗЫЫ
Да и еще, помоему для minecraft-like игр юзать 3д массивы - чистое нубство