Плохая производительность GCContextDrawImage из-за вызова подозрительных функций отладки - PullRequest
2 голосов
/ 11 октября 2019

Вызов GCContextDrawImage оказался узким местом в моем приложении Mac OS X, особенно на экранах сетчатки. Мне удалось несколько смягчить его, Избегая преобразований цветового пространства при блиттинге, Mac OS X 10.11 SDK , но все равно он работает медленнее, чем я ожидал.

При исследовании стекаdump with Instruments Я заметил, что много времени было потрачено на две функции с очень подозрительными именами, vImageDebug_CheckDestBuffer, которая вызывает _ERROR_Buffer_Write__Too_Small_For_Arguments_To_vImage__CheckBacktrace. См. Полный дамп стека ниже.

Мне кажется, это какое-то отладочное утверждение? Я использую отладочную версию библиотеки vImage, не осознавая этого? Могу ли я что-нибудь сделать, чтобы эти функции не поглотили все мои драгоценные циклы?

Stack trace captured with Instruments

1 Ответ

0 голосов
/ 23 октября 2019

А как насчет графического контекста (первый параметр)? Вы передаете это из другой темы? Что если вы получите контекст в основном потоке, а затем нарисуете изображение в основном потоке?

...