Многопоточные проблемы с производительностью

У меня есть многопоточные программы. Мы используем собственную реализацию пула потоков. Во-первых, нагрузки проекта хватает. по сравнению с одним потоком программа из двух потоков работает быстрее.

Когда мы увеличиваем количество потоков больше 2, производительность становится ужасной. Очевидно, мы столкнулись с проблемами производительности многопоточности.

Затем мы начали использовать анализ производительности Intel® VTune™ Amplifier XE 2017, мы интегрировали этот инструмент в VS2013. Затем произошла удивительная вещь, когда я нажимаю на кнопку со звездочкой Intel® VTune™ Amplifier XE, проект начинает выполняться, плагин собирает данные. Мы обнаруживаем, что когда мы запускаем этот проект через плагин, с увеличением количества потоков производительность становится выше, время работы сокращается. Мы можем открыть до 20 тем. И время сократилось в 20 раз

Итак, мы хотим знать, может ли Intel® VTune™ Amplifier XE 2017 изменить режим работы многопоточных программ? Почему это происходит? Меня давно беспокоит эта проблема.


person ballontt    schedule 14.10.2016    source источник
comment
При каком типе анализа вы видите увеличение производительности приложений? Для анализа проблем с потоками используйте Concurrency или Locks and Waits.   -  person Vital    schedule 15.10.2016
comment
Разве вы не запускаете свое приложение на мобильной платформе (например, на ноутбуке)?   -  person Vital    schedule 16.10.2016
comment
Мой проект просто может работать в Windows. Это консольное приложение Win. Да, все типы анализа показывают, что производительность увеличивается. все почти идеально. никаких блокировок и ожиданий, несколько переключений контекстов, несколько перекрестных ядер, ЦП полностью используется. Мы также используем визуализатор параллелизма от Microsoft. То же самое произошло. Даже я использую функцию clock() для подсчета времени, время сокращается!   -  person ballontt    schedule 19.10.2016
comment
Если вы работаете на мобильной платформе, ЦП может работать на более высокой частоте под контролем. VTune может отображать частоту процессора, например. в Advanced Hotspots (см. вкладку «Платформа»). Вы также можете поиграть с настройками мощности вашей платформы, чтобы работать в режиме максимальной производительности.   -  person Vital    schedule 20.10.2016


Ответы (1)


Наконец, я разрешаю этот вопрос. Ответ прост. Причина проблемы в том, что я запускаю программу с отладкой. Если я перенаправляю *.exe, производительность хорошая. Нет никакой связи с VTune, просто потому, что VTune напрямую начните с вызова *.exe.

person ballontt    schedule 21.10.2016