Ответ: Великая битва 4х языков программирования на простейшей задачке
Сделал 3 теста на C#, первый вариант, затем тот что PAX'а, и потом jagged от HolyDel'а.
В общем результаты такие:
Multidimensional:
Allocate: 1.6ms
Fill: 712.95ms
Get(65536 times): 1.03ms
Flattened:
Allocate: 1.6ms
Fill: 223.68ms
Get(65536 times): 0.62ms
Jagged:
Allocate: 448.18ms
Fill: 296.11ms
Get(65536 times): 0.46ms
Intel Pentium 4 CPU 3.00Ghz (2 CPUs)
Получается, работа в общем с Flatenned на C# в основном самый быстрый способ. Но с Jagged, если использовать статический массив, то доступ к данным будет быстрее.
Учитывая постоянный доступ, если он будет необходим, лучше всё таки использовать именно Jagged массив. А если нужен динамичный, то Flatten. Обычный мультиразмерный - естественно идёт мимо.
|