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

Сообщение от Randomize Посмотреть сообщение
Зачем столько лишних операций?
Где ты там увидел лишние операции? Можно конечно было в уме посчитать размер и шаг циклов, но зачем если это константы, пускай компилятор сам считает. Ну вот читабельный вариант, если так непонятно
Const Width% = 512
Const Height% = 128
Const Depth% = 512
Const Pitch% = Height * Depth
...
For x = 0 To (Width - 1) * Pitch Step Pitch
    For y = 0 To (Height - 1) * Depth Step Depth
        Local xy% = x Or y
        For z = 0 To Depth - 1
...
Сообщение от Randomize Посмотреть сообщение
но у нас тут идёт сравнение на равных условиях без всяких там выёживаний.
внимательней читай, я сказал что в данном случае можно оптимизировать. Да и сравнивать языки без использования их особенностей глупо. Это все равно что тракториста просить поездить на тракторе и болиде формулы-1 и спросить что лучше ездит У каждого языка есть свои фичи, и если уж ты пишешь на этом языке, то стоих их использовать, особенно если они могут улучшить программу.
Сообщение от Randomize Посмотреть сообщение
Альтернативные предложения?
Для начала надо подумать на организацией памяти, вот так втупую использовать большой 3д массив глупо. Надо исходить из конкретных задач, ибо произвольный доступ к такому массиву всегда чреват кеш-миссами. А значит нужно подумать как уменьшить кол-во данных в таком массиве, сжимать\разжимать его, сделать доступ менее произвольным. Это уже алгоритмический уровень, и язык здесь играет гораздо меньшую роль.
Можно использовать octree или BVH, ибо 3д массив не адаптивен, на пустых пространствах много памяти тратится бесполезно.
Память выделять из пула.
Хранить смещения вместо указателей, это немного уменьшит узлы дерева.
Дерево обновлять локально - скользить вверх\вниз по веткам.
Периодически перестраивать дерево уменьшая фрагментацию памяти, сложно конечно, но думаю возможно.
Использовать выравнивание памяти.
Попытать автора вот этой штуки
Еще что-нибудь, надо подумать
ЗЫ
Sparse voxel octree заюзать *trollface*

А вообще я не пойму смысла такого "бенчмарка", тут практически нечего тестировать, какой нафиг запись в массив, напишите реализацию какого-нить достаточно сложного мат. алгоритма и на нем тестируйте, еще бы сложение двух переменных потестировали
(Offline)
 
Ответить с цитированием
Эти 6 пользователя(ей) сказали Спасибо Платон Александрович за это полезное сообщение:
impersonalis (12.12.2011), johnk (26.11.2011), Mhyhr (26.11.2011), moka (26.11.2011), Randomize (26.11.2011), Reks888 (26.11.2011)