libc++ 的 uniform_int_distribution 性能问题
原文中文,约3600字,阅读约需9分钟。发表于: 。libc++ 的 uniform_int_distribution 性能问题背景前段时间,@lwpie 发现一段 C++ 代码在 macOS 下,分别用自带的 Clang 编译和用 Homebrew 的 GCC 编译,性能差距接近一个数量级,下面是运行时间:GCC-13 Homebrew: 300Apple Clang: 2170
本文讨论了在macOS下使用不同编译器编译C++代码时,uniform_int_distribution的性能差异。GCC-13 Homebrew的性能比Apple Clang好很多,原因是GCC-13 Homebrew使用了libstdc++,而Apple Clang使用了libc++。通过分析libc++的uniform_int_distribution实现,发现其算法在最坏情况下性能较差。作者建议要么等待libc++实现更好的算法,要么避免链接libc++,或者自己实现更好的算法。