爲了進一步裁剪tbox,更好的適配嵌入式開發平臺,tbox新增了--micro=y
的微模塊編譯選項git
若是啓用此編譯選項,那麼只會編譯tbox裏面較輕量的一些模塊,是的編譯後的庫大小,儘可能保證在64K左右。github
先來說講一些跟庫大小相關的編譯選項:算法
* `--smallest=y`: 通用平臺,最小編譯模式,會禁用全部第三方依賴庫,禁用全部擴展模塊,啓用最小化編譯優化(庫內部也會盡量節省內存使用) * `--micro=y`: 專門針對嵌入式平臺設計,僅編譯最爲輕量的一些模塊,啓用最小化編譯優化(有可能會包含一些可選組件)
smallest和micro的區別在於,即便啓用了smallest禁用全部擴展模塊,可是仍是會內置比micro更多的經常使用組件用於平常基礎開發 而micro是專門爲嵌入式平臺設計,內置的默認組件更加的精簡,一些重量級的模塊就不放置進去了macos
所以若是要編譯最小tbox庫,只須要執行下面的配置:api
$ xmake f --micro=y $ xmake
若是要在micro下面啓用協程支持,只須要:bash
$ xmake f --micro=y --coroutine=y $ xmake
進行編譯就好了,通常庫大小會控制在64K左右,目前內置模塊還不是不少,後續會進一步精簡優化,使其在64K內包含更多使用的模塊。less
目前微內核編譯模式支持的一些模塊有:socket
list_entry
/single_list_entry
單雙鏈容器(比list
/single_list
更加輕量,外置式,不會維護對象內存)__tb_thread_local__
線程局部存儲支持list_entry
/single_list_entry
)關於micro編譯的更多支持模塊列表,見micro.lua優化
後續在保持庫大小不增長的前提下,還會增長更多輕量級模塊(例如:定時器、更多的容器和算法支持。。)lua
我的主頁:TBOOX開源工程