Код на C/C++ намного медленнее, когда выполняется в OpenFX
У меня есть алгоритм сегментации, написанный на C/C++, который широко использует указатели C, чтобы получить доступ к связанным спискам структур, которые calloc'ed
в начале программы.
Этот алгоритм занимает около 3 сек. работать на Ubuntu 14.04, gcc 4.8.2. Он также использует OpenCV 2.4.8.
Алгоритм предназначен для встраивания в библиотеку OpenFX, так что эта библиотека может быть добавлена как плагин к программным пакетам, таким как Natron.
При выполнении в качестве плагина хоста в SUSE, gcc 4.3.2, тот же метод с теми же входами занимает 12 секунд. выполнить. Я отлаживал и не могу понять, почему это занимает так много времени, когда выполняется в OpenFX. Мое самое сильное предположение состоит в том, что OpenFX по-разному обрабатывает доступ к памяти, и это замедляет выполнение алгоритма.
Кто-нибудь может дать мне какую-нибудь подсказку? Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.