*'-- smallest=y': general platform, minimum compilation mode, all third-party dependent libraries will be disabled, all extension modules will be disabled, and minimal compilation optimization will be enabled (internal libraries will also save memory as much as possible) *'-- micro=y': specially designed for embedded platforms, only compiles the lightest modules, and enables minimal compilation optimization (some optional components may be included)
$ xmake f --micro=y $ xmake
$ xmake f --micro=y --coroutine=y $ xmake
-
The stackless thread library (lighter than the stackfull version, each coroutine only occupies dozens of bytes, and the switching efficiency is also improved 5-6 times. It only takes 40 ms to switch 1000w times on the Macosx) -
Lightweight libc library api support (support some of the longest used interfaces) -
support list_entry / single_list_entry Single double chain container (ratio list / single_list More lightweight, external, no object memory maintenance) -
Original socket interface operation -
File operation related api -
DNS address resolution, ipv4, ipv6 and other operation interfaces -
Bits data operation and parsing -
Provide system memory and continuous static memory allocator (you can specify that all memory in the tbox is allocated in one continuous space, which is applicable to scenarios with strict requirements on memory resources) -
Supports memory out of bounds and leak detection -
Thread related basic interface -
Provide single instance and atomic operation interface -
Spinlock support -
Cross platform __tb_thread_local__ Thread local storage support -
Trace print interface -
Iterator support (currently only used for list_entry / single_list_entry )