首页 > 解决方案 > 使用“Windows 上的 Ubuntu 上的 Bash”编译的 C 脚本是否比直接使用 Windows 编译和运行慢?

问题描述

我想运行用 C 编写的单个文件脚本。我一直在直接从终端使用 Bash On Ubuntu On Windows 10,同时使用 gcc for Linux 进行编译。

我想知道是否可以通过直接从 Windows 编译和运行脚本,例如使用 Windows gcc 并获取 Windows 可执行文件,我是否会在执行速度方面获得更好的脚本性能?

如果一切都在 Windows 中完成,脚本会运行得更快吗?

谢谢

标签: cwindowsbashgcccmd

解决方案


如果满足以下条件,本机编译的程序将比等效的脚本运行得更快并且使用更少的内存:

  • 语言源代码相同(即编写一个 C 程序并编译相同的源代码)
  • 编译器足够好(大多数都是,除非您编写自己的编译器并对其进行故障排除)

也就是说,C 是一种很棒的编程语言,但对于脚本来说并不容易,因为运行 shell 程序(如grepsed和其他非常有用的命令)并将它们的输出通过管道传递给其他命令很麻烦。这当然是可能的(我喜欢tcc这方面),但应该稍微用于其他常规命令未涵盖的任何内容(并且,当您使用 Windows 10 时,PowerShell 至少可以说是一个巨大的改进cmd)。

现在,如果您想在 Windows 上编写 linux 风格的脚本(这更像是“GNU 风格”的脚本),您可能想看看MinGW(Minimalist GNU for Windows)。它拥有标准 Linux 拥有的所有很酷的工具(bashgrepsedawk、 ...),这些工具都是为 Windows 本地编译的,因此您将获得与 Linux 大致相同的执行速度,并具有脚本优于编译程序的优势。


推荐阅读