Является ли сценарий C, скомпилированный с использованием «Bash on Ubuntu в Windows», медленнее, чем компиляция и запуск в Windows? - PullRequest
0 голосов
/ 24 июня 2019

Я хочу запустить отдельный файл-скрипт, написанный на C. Я использую Bash On Ubuntu в Windows 10 непосредственно из терминала, при компиляции с использованием gcc для Linux.

Мне было интересно, если, возможно, скомпилировав и запустив скрипт непосредственно из Windows, например, используя Windows gcc и получив исполняемый файл Windows, получу ли я лучшую производительность своего скрипта с точки зрения скорости исполнения?

Сценарий будет работать быстрее, если все будет сделано в Windows?

Спасибо

1 Ответ

1 голос
/ 24 июня 2019

Собственно скомпилированная программа будет работать быстрее и использовать меньше памяти, чем эквивалент скрипта, при условии, что:

  • исходный код языка и одинаков (т.е. скрипт Cзапрограммируйте и скомпилируйте один и тот же исходный код)
  • компилятор достаточно хорош (в большинстве случаев, если вы не написали свой собственный компилятор и не устраняете его)

Тем не менее, C - отличныйязык программирования, но не так прост для сценариев, так как неудобно запускать программы оболочки (например, grep, sed и другие чрезвычайно полезные команды) и передавать их вывод другим командам.Конечно, это возможно (мне нравится tcc в этом отношении), но его следует использовать незначительно для всего, что не охватывается другими обычными командами (и, поскольку вы используете Windows 10, PowerShell - это Огромное улучшение по сравнению с cmd, если не сказать больше).

Теперь, если вы хотите создавать скрипты в стиле linux для Windows (что более похоже на скрипты в стиле GNU), вы можетехочу взглянуть на MinGW (минималистский GNU для Windows).Он имеет все классные инструменты, которые есть в стандартном Linux (bash, grep, sed, awk, ...), которые изначально скомпилированы для Windows, поэтому вы получите в основном ту же скорость выполнения, что и в Linuxс преимуществами скриптов над скомпилированными программами.

...