2016-10-14 6 views
0

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

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

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

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

+0

Под каким видом анализа вы видите увеличение производительности приложения? Для анализа проблем с потоками используйте Concurrency или Locks and Waits. – Vital

+0

Вы не используете приложение на мобильной платформе (например, ноутбук)? – Vital

+0

Мой проект просто может работать на windows.It является консольным приложением win.Yeah, все виды анализа показывают, что увеличение производительности. все почти идеально. Блокирует и ждет, мало переключений контекста, немного креста на основе ядра, процессор полностью используется. Мы также используем визуализатор параллелизма Microsoft. То же самое произошло. Даже я использую функцию clock() для восстановления времени, время сокращается! – ballontt

ответ

1

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

 Смежные вопросы

  • Нет связанных вопросов^_^