Re[13]: Где НЕТ места .Net
От: alexeiz  
Дата: 28.12.04 10:34
Оценка:
"Silver_s" <7870@users.rsdn.ru> wrote in message
news:968016@news.rsdn.ru
> Здравствуйте, VladD2, Вы писали:
>
>>> Как-как. Написали аналогичный алгоритм на C# (там работа с
>>> матрицами, заполнение одних ячеек по другим, по тригонометрическим
>>> функциям) и охерели. Считает правильно, но медленно.
>
>> Так показал бы. Глядишь и найдем где у тебя собака порылась.
>
> Что-то типа такого:
>
>
> void Calc(object[][] m)
> {
> int sum=0;
> foreach(object[] ar in m[1])
> foreach(int n in ar)
> sum+=n;
> //...
> }
>

>
> ...Отсюда вывод — не подходит .NET для матричных вычислений.

Ёлки палки, что же ты foreach используешь здесь? Для высокопроизводительных циклов только for(). Иначе плата за абстракцию foreach слишком велика. Попробуй вот так:
for ( int i = 0; i < m.Length; ++i ) {
    object [] mm = m[ i ];
    for ( int j = 0; j < mm.Length; ++j ) {
        sum += (int) mm[ j ];
    }
}


А то, что ты jagged массивы используешь, это хорошо. Они побыстрее multi-dimmensional массивов будут.
Posted via RSDN NNTP Server 1.9 delta
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.