< 返回版块

wangbinyq 发表于 2019-11-13 16:00

我有个 c++ 程序 用 gcc 和 msvc 速度相差很大, gcc 比 msvc 快 40%, 而 rust 版本的用 msvc 和 gnu target 编译都比 gcc 版 c++ 的慢, 跟 msvc 版 c++ 差不多.

在编译 rust 代码的时候会用到 msvc 和 gcc 的编译器吗, 还是只有第三方库会用到?

是不是不同的 target 只有链接的时候会调用相应的编译工具, 对于同一份 rust 代码都是用的 rustc 编译, 生成的文件只有 abi 不同, 所以两个 target 的速度差不多.

评论区

写评论
作者 wangbinyq 2019-11-13 17:47

所以两者生成的程序在性能上没有区别

c5soft 2019-11-13 17:21

用MSVC工具链,底层代码能够借用Windows系统的DLL,因而减小了EXE的大小,GNU应该包含底层代码多一些,所以EXE更大。

c5soft 2019-11-13 17:15

编译/运行速度没测过,我以前用gnu编译过, 现在一直用MSVC,一个明显的区别是msvc生成的可执行文件更小。另外rustc像是直接从源文件生成二进制文件,不像c,先生成obj中间文件再连接。

1 共 3 条评论, 1 页