Здравствуйте, nikov, Вы писали:
N>Здравствуйте, barn_czn, Вы писали:
_>>Кто что думает? Переходить полностью на С++ у меня нет ни желания ни времени.
N>Ты уже посмотрел профайлером, где именно самое медленное место в коде?
Конечно, dotTrace юзал.
Тормоза например на поэлементной обработке матриц (в цикле проходим по строкам и постолбцам).
Сначала делал это также как пишут в доках к OpenCv:
a_ij = ((double*)(mat.data.Ptr + mat.step * i)[j]
— медленно, главная проблема — приведение к (double*)
потом сделал для каждой матрицы предварительное формирование массива указателей строк (т.е. массив double*[])
— стало быстрее.
Перейти на double** думаю не сильно ускорит.
В общем проверено, unsafe код на .NET не компилится в эффективный нативный код (в райнтайме имею ввиду когда IL->машинный код).