c/c++获取uuid
c/c++标准库中没有自带的uuid工具函数/类,可以使用三方库libuuid,boost,或者手工实现,如下:
[zjh@hs-10-20-xxx lib]$ sudo yum install libuuid-devel [sudo] password for zjh: Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile base | 1.8 kB 00:00:00 extras | 1.4 kB 00:00:00 updates | 1.5 kB 00:00:00 Package libuuid-devel-2.23.2-65.el7_9.1.x86_64 already installed and latest version Nothing to do
测试程序
// boost版本异常慢 void test_uuid_perf() { // boost::uuids::uuid a_uuid; vector<string> myvertor; uuid_t uu; char uuid_str[37]; struct timeval start, stop, diff; gettimeofday(&start, 0); //开始计时 for (int i=0;i<100000;i++) { // a_uuid = boost::uuids::random_generator()(); // myvertor.emplace_back(boost::uuids::to_string(a_uuid)); uuid_generate(uu); uuid_unparse_lower(uu, uuid_str); string str1(uuid_str); myvertor.emplace_back(str1); } cout << myvertor[10] << endl; gettimeofday(&stop, 0); //结束计时 timeval_subtract(&diff, &start, &stop); printf("总计用时:%d秒%d微秒\n",diff.tv_sec, diff.tv_usec); // boost版本,10万个uuid 17秒多; uuid版本, 10万个0.5秒,35倍 printf("完成"); }
https://www.cnblogs.com/nanfei/p/11742249.html libuuid,性能最佳,是手工和boost的几十倍
https://www.jianshu.com/p/33639aee1ffa,https://blog.51cto.com/u_14508933/5565901 手工编写
https://blog.csdn.net/chiefarbiter/article/details/90201581 boost
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2021-10-01 lightdb 21.1 enterprise postgres 复杂sql性能优化一例
2021-10-01 postgresql/lightdb分区技术及其优化