Использование функций DLL C ++ для повышения производительности в проекте C #

В течение многих лет слышали, что C ++ быстрый, поэтому он хорош для обработки изображений, например.

Если я занимаюсь разработкой системы на C #, которая требует некоторой обработки изображений, и я хочу улучшить вашу производительность, каков наилучший подход?

1 — Сделайте все это в C # и выполните функцию обработки изображений с помощью «unmanaged»

2 — Написать функцию, которая обрабатывает изображение в C ++ и импортировать эту функцию в мой код C #?

Еще вопросы?

Какой из них улучшает производительность?

2

Решение

Это компромисс между вызовами C ++ и C # и кодом IL для генерации машинного кода.

  1. C # генерирует код IL, который будет преобразован в машинный код во время выполнения. Генерация машинного кода будет иметь определенную стоимость.
  2. Из C # Вы можете вызвать метод C ++ DLL. Загрузка метода C ++ и вызов, который будет иметь определенную стоимость.

Теперь вам нужно сравнить стоимость 1 & 2.

2

Другие решения

Я не знаю, какие операции обработки изображений вам нужно делать, но если вы хотите получить очень хорошую производительность, вы могли бы рассмотреть возможность использования CUDA или OpenCL (программирование на графической карте)

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector