为了进一步裁剪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开源工程