cl.exe занимает много времени во время InvokeCompilerPassW - PullRequest
1 голос
/ 23 апреля 2020

У меня есть проект CMake, который я создаю с Linux и Windows. Проект автоматически генерирует пакеты с использованием CPack, и когда я собираю с

cmake --build . --config Release --target package,

, запускается полная компиляция. На Linux эта полная компиляция (около 10 тыс. Строк C) занимает около 1 минуты с чистого листа. На Windows это занимает 25 минут или больше.

Я загрузил Process Explorer и обнаружил следующее:

cl.exe slowdown stack trace

cl.exe slowdown cpu time

Возможно, я неверно истолковал это, но похоже, что o_strcat_s привязывает более 10% моего процессорного времени. Конкатенация строк должна иметь линейное время, но похоже, что каждый проход должен перераспределять все больше и больше памяти для достижения конкатенации (см. RtlReAllocateHeap). Почему это? Что заставляет cl.exe работать так медленно при вызове из командной строки следующим образом?

Я использую генераторы Visual Studio, если это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...