October 22nd, 2006

silhouette

зима-осень

Белый снег, по-хозяйски улегшийся ночью на холодную землю, днем оказался покрыт свежими осенними листьями. Есть в этом что-то идейно неверное.
  • Current Mood
    мир отдельно
  • Tags
mybarapp

java arrays access

Подумал тут вдруг: а куда быстрее "случайный" доступ - в двумерный массив (по [i][j]) или в одномерный, хранящий те же данные (по [i*cols + j])

Соорудил небольшой тестик, и получилось, что читать как попало из одномерного - быстрее. Причем нехило так быстрее, раза в полтора (для больших массивов).
Collapse )

Связано ли это явление с природой "тяжелого" доступа к элементам двумерного массива т.к. он, по сути, "массив массивов", т.е. в JVM фактически идет доступ сначала по указателю в "массиве массивов", потом уже в конкретном массиве?
Что же там внутри действительно происходит?

x-post: ru_java