Что быстрее работает: двумерный массив или массив массивов?
От: objMihail Россия  
Дата: 13.11.10 13:52
Оценка:
Тестить лень, может кто уже тестил, не подскажите?
Re: Что быстрее работает: двумерный массив или массив массив
От: Пельмешко Россия blog
Дата: 13.11.10 14:03
Оценка: +1
Здравствуйте, objMihail, Вы писали:

M>Тестить лень, может кто уже тестил, не подскажите?


массив массивов
Re: Что быстрее работает: двумерный массив или массив массив
От: dilmah США  
Дата: 13.11.10 14:06
Оценка: -1
двумерный массив.
Re[2]: Что быстрее работает: двумерный массив или массив мас
От: cvetkov  
Дата: 13.11.10 14:09
Оценка:
Здравствуйте, Пельмешко, Вы писали:

П>массив массивов

а почему?
казалось бы одно лишнее умножение и на один доступ в память меньше.

может дело в проверке на выход за граници массива?
... << RSDN@Home 1.2.0 alpha 4 rev. 1227>>
Re[3]: Что быстрее работает: двумерный массив или массив мас
От: Sinix  
Дата: 13.11.10 14:22
Оценка: 4 (1)
Здравствуйте, cvetkov, Вы писали:

C>казалось бы одно лишнее умножение и на один доступ в память меньше.

C>может дело в проверке на выход за граници массива?
Нет. просто в рантайме есть оптимизации для SZArray — одномерных массивив с индексацией с 0го элемента.
Как обычно, тынц:
1) http://www.codeproject.com/kb/dotnet/arrays.aspx (советую всю серию blablabla undocumented и блог)
2) http://www.codeproject.com/KB/threads/FalseSharing.aspx
3) http://techembassy.blogspot.com/2006/07/data-types-arrays-and-collections.html
Re[3]: Что быстрее работает: двумерный массив или массив мас
От: Пельмешко Россия blog
Дата: 13.11.10 14:23
Оценка:
Здравствуйте, cvetkov, Вы писали:

C>Здравствуйте, Пельмешко, Вы писали:


П>>массив массивов

C>а почему?
C>казалось бы одно лишнее умножение и на один доступ в память меньше.

Обычно это так, но не в реализации .NET

C>может дело в проверке на выход за граници массива?


Не только, там ещё всякие отрициальные индексы бывают, насколько я помню...
Re: Что быстрее работает: двумерный массив или массив массив
От: Mr.Cat  
Дата: 13.11.10 14:29
Оценка:
Здравствуйте, objMihail, Вы писали:
M>Тестить лень, может кто уже тестил, не подскажите?
Одномерный массив
Re[4]: Что быстрее работает: двумерный массив или массив мас
От: cvetkov  
Дата: 13.11.10 14:37
Оценка:
Здравствуйте, Sinix, Вы писали:

C>>казалось бы одно лишнее умножение и на один доступ в память меньше.

C>>может дело в проверке на выход за граници массива?
S>Нет. просто в рантайме есть оптимизации для SZArray — одномерных массивив с индексацией с 0го элемента.
S>Как обычно, тынц:
S>1) http://www.codeproject.com/kb/dotnet/arrays.aspx (советую всю серию blablabla undocumented и блог)
S>2) http://www.codeproject.com/KB/threads/FalseSharing.aspx
S>3) http://techembassy.blogspot.com/2006/07/data-types-arrays-and-collections.html
пошол переписывать код. думал что сэкономлю
... << RSDN@Home 1.2.0 alpha 4 rev. 1227>>
Re[2]: Что быстрее работает: двумерный массив или массив мас
От: Lloyd Россия  
Дата: 13.11.10 14:40
Оценка:
Здравствуйте, Пельмешко, Вы писали:

M>>Тестить лень, может кто уже тестил, не подскажите?


П>массив массивов


Даже для произвольного доступа и с учетом того, что у массива массивов гораздо выше шанс не влезть в кэш процессора?
Re[5]: Что быстрее работает: двумерный массив или массив мас
От: Sinix  
Дата: 13.11.10 14:42
Оценка: +1
Здравствуйте, cvetkov, Вы писали:

C>пошол переписывать код. думал что сэкономлю


Вы сначала напишите быстрый прототип и померьте. Производительность штука такая... предсказуемо непредсказуемая. Только вчера вылизал участок кода по профайлеру жрущий %30 времени. Теперь занимает всего 3% по тому же профайлеру. Правда общее время работы чуть ли не увеличилось
Re[6]: Что быстрее работает: двумерный массив или массив мас
От: cvetkov  
Дата: 13.11.10 14:46
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Вы сначала напишите быстрый прототип и померьте. Производительность штука такая... предсказуемо непредсказуемая. Только вчера вылизал участок кода по профайлеру жрущий %30 времени. Теперь занимает всего 3% по тому же профайлеру. Правда общее время работы чуть ли не увеличилось


да я пошутил. мне с двумерным массивом удобнее а падение производительности скорее всего и с микроскопом не заметишь.
... << RSDN@Home 1.2.0 alpha 4 rev. 1227>>
Re: Что быстрее работает: двумерный массив или массив массив
От: Spiceman  
Дата: 13.11.10 16:58
Оценка:
Здравствуйте, objMihail, Вы писали:

M>Тестить лень, может кто уже тестил, не подскажите?

Делал недавно игру одну на шахматной доске, надо было варианты перебирать, много тыщмильонов вариантов. Сначала сделал доску как двумерный массив. Потом переделал в массив массивов, получил выигрышь где-то 30%.
Re: Что быстрее работает: двумерный массив или массив массив
От: Madruel  
Дата: 13.11.10 20:50
Оценка:
Здравствуйте, objMihail, Вы писали:

M>Тестить лень, может кто уже тестил, не подскажите?


Вроде как общеизвестно, что двумерный массив быстрее инициализируется (значеними по умолчанию), а массив массивов быстрее в доступе к элементам.
Так как обычно инициализация массива производится лишь раз, а к элементам обращаются постоянно, в большинстве случаев выгоднее массив массивов
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.