У меня есть проект CMake, который я создаю с Linux и Windows. Проект автоматически генерирует пакеты с использованием CPack, и когда я собираю с
cmake --build . --config Release --target package
,
, запускается полная компиляция. На Linux эта полная компиляция (около 10 тыс. Строк C) занимает около 1 минуты с чистого листа. На Windows это занимает 25 минут или больше.
Я загрузил Process Explorer и обнаружил следующее:
Возможно, я неверно истолковал это, но похоже, что o_strcat_s
привязывает более 10% моего процессорного времени. Конкатенация строк должна иметь линейное время, но похоже, что каждый проход должен перераспределять все больше и больше памяти для достижения конкатенации (см. RtlReAllocateHeap
). Почему это? Что заставляет cl.exe
работать так медленно при вызове из командной строки следующим образом?
Я использую генераторы Visual Studio, если это поможет.