Я читал сообщение о том, как итерация через 2-мерный массив по горизонтали быстрее, чем по вертикали, из-за способа хранения данных (см.: Fastest way to loop through a 2d array?). Это имело смысл, когда я прочитал ответ, но мне стало интересно, какая разница между 2 и 1 размерными массивами. Есть ли разница в скорости в итерации 1-мерных и 2-мерных массивов с одинаковым количеством ячеек?Скорость итерации через одномерные vs двумерные массивы
ответ
На Java существует много факторов и больше накладных расходов с массивами. Поскольку массивы являются объектами, int[][]
представляет собой массив объектов массива ints
. Это может сделать горизонтальную итерацию быстрее, чем вертикально, если точка доступа оптимизирует или кэширует доступ к массиву.
Для одного против двух размерных, одномерный будет быстрее, так как это поиск массива и примитивный по сравнению с поиском массива разыменование ссылки объекта массива, а затем поиск в этого массива.
Однако такая микрооптимизация не обязательно является наилучшим использованием вашего времени, так как есть, вероятно, лучшие места для улучшений.
Это немного быстрее –
@SamIam незначительно является преувеличением в этом случае. – Brinnis
- 1. Двумерные массивы
- 2. Два одномерные массивы ошибок
- 3. Цитирование через двумерные массивы на основе условий
- 4. Loop через 2x двумерные массивы для сравнения
- 5. Двумерные массивы в Python
- 6. Как добавить двумерные массивы?
- 7. SQL итерации через массивы
- 8. PHP итерации через массивы
- 9. Сравнить двумерные массивы
- 10. memcpy и двумерные массивы
- 11. Как суммировать двумерные массивы
- 12. двумерные массивы в PHP
- 13. Разнесенные двумерные массивы?
- 14. Как суммировать двумерные массивы
- 15. Двумерные массивы в JNI
- 16. Двумерные массивы типов актеров
- 17. двумерные массивы в Java
- 18. Копирование двумерные массивы с помощью указателей
- 19. Два одномерные массивы с указателями
- 20. Два одномерные массивы и указатели
- 21. Правила подзаголовка и одномерные массивы
- 22. Java - Строки и одномерные массивы
- 23. Объединить двумерные массивы в PHP
- 24. Javascript три одномерные массивы против литерал объекта
- 25. Добавление строк в двумерные массивы
- 26. Слияние двух, неравные, двумерные массивы
- 27. Java - Двумерные массивы - Точки застройки
- 28. Консоль для лабиринта - Двумерные массивы
- 29. Двумерные массивы и пользовательский ввод
- 30. сравнить 2 двумерные массивы - Java
О соответствующем примечании см. Http://stackoverflow.com/a/6631081/1003855 – Josh