Показать сообщение отдельно
Старый 26.11.2011, 06:13   #13
Платон Александрович
Нуждающийся
 
Аватар для Платон Александрович
 
Регистрация: 05.10.2011
Адрес: Россия, Южно-Сахалинск
Сообщений: 66
Написано 42 полезных сообщений
(для 83 пользователей)
Ответ: Великая битва 4х языков программирования на простейшей задачке

Сообщение от ffinder Посмотреть сообщение
For i = 0 To 20
Цикл заполнения массива выполняется 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д массивы - чистое нубство
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
moka (26.11.2011)