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
函數(shù)會被編譯到
最終的二進制文件中黔姜,因為我們調(diào)用了 hello
函數(shù),
而deadCode
函數(shù)由于沒有被調(diào)用蒂萎,所以不會被編譯到最終的二進制文件中秆吵,減小了生成的可執(zhí)行文件的大小。
另外代碼消除還有一個好處五慈,當我們從導入外部庫的時候纳寂,我們
實際上只導入了我們使用的函數(shù)(包含這些函數(shù)調(diào)用的函數(shù))主穗。
舉個例子
import math
echo sqrt(12.0)
當我們導入標準庫中的math
庫,由于我們只使用了sqrt
函數(shù)毙芜,所以最終的可執(zhí)行文件中包含這個函數(shù)的定義忽媒。相應地,我們沒有使用math
中的cos
函數(shù)爷肝,cos
函數(shù)的定義也就不會出現(xiàn)在最終的可執(zhí)行文件中猾浦。
Nim 的發(fā)展方向
Nim v1.x 將只包含兩種 gc 模式–gc:destructors
和–gc:boehm
陆错。
這兩種 gc 模式均可用于多線程灯抛,其中 destructors
針對延遲進行了優(yōu)化,并且適用于所有大小的堆音瓷;而boehm
在中等大小的堆上吞吐量更好(中等大小指的是 500 MB 左右)对嚼。
destructors
的介紹 https://nim-lang.org/docs/destructors.html.
Nim 庫推薦
Nim Website Creator
快速創(chuàng)建網(wǎng)站的庫,演示網(wǎng)站 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