У меня есть программа, способная генерировать 5-мегапиксельные транспортные потоки одновременно. каждый поток имеет свой собственный контекст и выполняется в независимом потоке. когда активен только один поток, все работает отлично. как только я активирую другой поток, частота кадров падает значительно. оба потока по-прежнему работают правильно, частота кадров медленная. Я отследил его до вызова av_interleaved_write_frame. он идет примерно с 4 мс, когда один поток до более 50 мс, когда два. Я работаю на 6-ядерном сервере haswell-e с гиперпотоком, и машина почти не загружена.libav ffmpeg проблема с несколькими потоками производительность
ответ
Первый тест, если выполняется два отдельных процесса одного и того же приложения, каждое приложение с одним потоком, производительность хороша в обоих случаях. Если да, я думаю, это может быть связано с многопоточной проблемой в вашем приложении. Проверьте, активируется ли несколько потоков в разных потоках, как синхронизируются эти потоки. Это может быть проблема синхронизации потоков в вашем коде.
. Синхронизация между нитями не является полностью независимой. запуск двух разделов копий этого приложения проблематичен. возможно, я могу привести к более простому тестовому примеру – hillsm
Вы проверяли использование основного ядра процессора? Один или несколько могут перегружать. –
Да, ни один из сердечников не привязан – hillsm