1.libunwind��Դ��
libunwind��Դ��
在探索musl和glibc性能差异时,源码源码发现musl在某些函数实现上可能较慢,源码源码如malloc系列和memcpy系列函数。源码源码特别在多线程环境下,源码源码musl的源码源码复杂算法指标源码malloc性能会显著影响效率,原因在于每次malloc时都需要全局变量加锁解锁,源码源码源码刻盘啥意思造成严重竞争现象。源码源码
然而,源码源码musl的源码源码源代码简洁,易于管理,源码源码相较于glibc的源码源码复杂代码结构,替换性能较慢的源码源码函数能带来显著性能提升。在使用Gentoo Linux系统并采用LLVM clang/lld/libc++/libc++abi/libunwind时,源码源码阅读app源码编译通过替换关键函数,源码源码编译速度优于使用glibc的源码源码系统。
对于不希望修改musl源码的情况,可直接链接高性能malloc实现,企业猫源码网例如微软的github.com/microsoft/mi... 或者是GitHub - mjansson/rpmalloc: Public domain cross platform lock free thread caching -byte aligned memory allocator implemented in C。mimalloc目前被认为是性能最高的开源malloc实现,使用安全模式版本在很多情况下比大部分malloc更快。rpmalloc性能也很接近,xilinx加密ip源码且代码精简。
虽然musl的qsort实现不是最快的,但rust标准库使用的pdqsort是最快算法,不过在C中正确实现pdqsort较为复杂,因此未进行替换。毕竟glibc的qsort性能也非最优。
建议使用musl时,一并采用LLVM libc++,因为Apple和Google的两大企业支持,性能相较于libstdc++有明显提升。