Nim编程早茶之死代码[dead code]消除
2019-11-16 本文已影响0人
Python高效编程
Nim 每日早茶
Nim 语言中的死代码[dead code]消除
https://tea.nim-cn.com/nim-lang-1.html
Nim 语言中的死代码[dead code]消除?
Nim
语言的编译器,会从最终的二进制文件中移除
没有使用过的代码。
proc deadCode() =
echo "I'm not used!"
proc hello() =
echo "Hello, Nim!"
hello()
在上面这个例子中,我们只有 hello
函数会被编译到
最终的二进制文件中,因为我们调用了 hello
函数,
而deadCode
函数由于没有被调用,所以不会被编译到最终的二进制文件中,减小了生成的可执行文件的大小。
另外代码消除还有一个好处,当我们从导入外部库的时候,我们
实际上只导入了我们使用的函数(包含这些函数调用的函数)。
举个例子
import math
echo sqrt(12.0)
当我们导入标准库中的math
库,由于我们只使用了sqrt
函数,所以最终的可执行文件中包含这个函数的定义。相应地,我们没有使用math
中的cos
函数,cos
函数的定义也就不会出现在最终的可执行文件中。
Nim 的发展方向
Nim v1.x 将只包含两种 gc 模式–gc:destructors
和–gc:boehm
。
这两种 gc 模式均可用于多线程,其中 destructors
针对延迟进行了优化,并且适用于所有大小的堆;而boehm
在中等大小的堆上吞吐量更好(中等大小指的是 500 MB 左右)。
destructors
的介绍 https://nim-lang.org/docs/destructors.html.
Nim 库推荐
Nim Website Creator
快速创建网站的库,演示网站 https://nimwc.org/
https://github.com/ThomasTJdev/nim_websitecreator
个人博客:
https://tea.nim-cn.com/nim-lang-1.html
https://tea.nim-cn.com/nim-lang-9.html