本章介绍几个常用的宏, 合适的选择它们能让Libev
在内部更加高效的运行.
如果它被定义为
1
, 则使用math
库的floor
来计算周期时钟. 否则,Libev
会使用自己实现的版本(低效). 而通常使用math
库的话必须连接到libm
, 所以如果您的libc
如果支持的话最好定义为1
.
如果这两个被定义为
1
,Libev
会假设当前进程不会运行在多线程环境下. 这会让Libev
减少更多依赖, 理>论上会运行的更快.
这个宏控制内部需要进行多少验证, 而如果在开发期间请根据下列进行设置:
0
则不会编译内部验证代码.1
则虽然会编译但不会运行.2
与3
的差别仅是调用频繁次数的差别.
调用验证会极大程度的降低
Libev
的运行速度, 所以在生产环境下一般定义为0
.
如果定义为
1
. 内部会将最小堆的二叉树换成四叉对, 这在计时器数量较多的情况下能略微提升性能.
如果定义为
1
. 内部会在堆内使用额外的内存缓存结构, 这样每次调整的时候能避免随机方位堆结构. 同样能在计时器数量较多的情况下略微提升性能.
根据不同的平台指定合适的后端, 这些后端其中一些是可以组合使用的.
Linux
特定平台的一些宏, 在支持的时候使用它们能降低内部消耗.