время компиляции swiftc при использовании -O происходит медленнее, чем при отсутствии

Я изучил быстрый компилятор (swiftc). Я просто делаю один быстрый файл, написанный об алгоритмах сортировки. (radix, merge, quick, heap ..), а затем я скомпилировал с флагами оптимизации или без них (-O, -wmo) и проверил время с помощью флага (-driver-time-compilation)

⬇️ result1 - не использовать флаг оптимизации

⬇️ result2 - использование флага оптимизации.

но результат1 был взят 0,3544 настенного времени. Я думаю, что время на стену - это действительно время.

и result2 был взят 0,9037 времени стены.

Я думаю, что использование флага оптимизации должно быть быстрее, чем его неиспользование.

Вы можете помочь мне понять, почему это так?
Я хочу сократить время компиляции только с помощью swiftc.

1 ответ

Решение

Время, которое вы показываете, - это время компиляции , а не время выполнения. Оптимизация требует времени, и компилятору приходится усерднее работать, чтобы завершить ее, совершенно нормально, что компиляция занимает больше времени при оптимизации кода.

В общем, это предполагаемое поведение, одним небольшим недостатком является больший размер исполняемого файла, который может быть создан, но обычно это не проблема.

Другие вопросы по тегам