Производительность компоновщика Visual Studio 2010 C ++ для больших проектов - PullRequest
2 голосов
/ 18 августа 2010

В моей компании мы все еще используем Visual Studio 2005, но заглядываем в Visual Studio 2010 в надежде, что это ускорит некоторые части нашего цикла разработки.В настоящий момент нас больше всего интересует производительность компоновщика C ++ в Visual Studio 2010. При создании нашего приложения мы рассматриваем время соединения от 40 секунд до 2 минут, в зависимости от конфигурации компьютера (SSD или HDD), иматериал уже находится в кеше диска Windows.Простой тест, в котором мы используем компоновщик VS2010 вместо компоновщика VS2005, показал улучшение примерно на 25%.Мы надеялись увидеть гораздо большее улучшение, потому что думали, что компоновщик теперь сможет использовать несколько ядер.Существуют ли магические линкеры, которые сокращают время соединения до приемлемых уровней?

Ответы [ 2 ]

6 голосов
/ 18 августа 2010

Насколько я понимаю, большое изменение (с точки зрения производительности), которое MS внесла в компоновщик в VS2010, заключается в том, что запись файла .pdb выполняется в отдельном потоке.Конечно, поскольку компоновщик делает гораздо больше, есть предел того, насколько он улучшит общее время соединения:

А вот статья, которая показывает, как вы можете получить более подробную статистику синхронизации, если вы заинтересованы в этом анализе:

В любом случае, повышение скорости на 25% за счет простого добавления нового набора инструментов мне кажется довольно хорошим результатом.

3 голосов
/ 18 августа 2010

25% меньше времени не плохо.Если вы хотите более быстрое связывание, попробуйте динамическое связывание с DLL, а не со статическими библиотеками.Это часто намного быстрее.

...