使用gcc代替v语言的tcc编译器提高编译后二进制文件执行速度
在v语言的文档中看到它有-prod
选项可以编译出执行更快的程序。
但是编译首先就通不过,原来不加-prod
选项编译的时候的警告变成了错误
C:\d>vwin\v\v -prod sortlines.v -o stlines
sortlines.v:47:9: error: unused variable: `line_start`45 |46 | mut lines := []&char{cap: max_lines}47 | mut line_start := unsafe { &char(buf.str) }| ~~~~~~~~~~48 |49 | // 记录每行起始地址并将\n替换为\0
看到这个变量确实没有用,就删除了这一行,编译通过了,但提示如下,测试运行时间,和不带-prod
编译的并没有区别。
C:\d>vwin\v\v -prod sortlines.v -o stlines
Note: tcc is not recommended for -prod buildsC:\d>timer64 stlines varchar.txt >vvc.txt
查看自带的帮助信息
C:\d>vwin\v\v help build
里面有这么一句
You can set it like this: `export VFLAGS="-cc clang -g"` on *nix,
`set VFLAGS=-cc msvc` on Windows.
我没有装msvc,但装了个mingw的gcc, 因此改写成
C:\d>set VFLAGS=-cc gccC:\d>vwin\v\v -prod sortlines.v -o stlinesgccC:\d>timer64 stlinesgcc varchar.txt >vvc.txt
这次运行速度加快了1秒,虽然是微小的进步,也算有用。