欢迎投稿,推荐或自荐文章/软件/资源等,评论区留言
本期文章由 黄亮Anthony HNY 不语 赞助
大家新年快乐
资讯
boost 新增 charconv https://lists.boost.org/Archives/boost/2024/02/255821.php
把from_chars搬到c 11,我建议放弃c 11 ,2024了bro
文档 https://develop.charconv.cpp.al/
标准委员会动态/ide/编译器信息放在这里
编译器信息最新动态推荐关注hellogcc公众号 本周更新 2024-01-31 第239期
What’s New in vcpkg (January 2024) https://devblogs.microsoft.com/cppblog/whats-new-in-vcpkg-january-2024/
另外有个重写loki的活动哈,有点幽默,感兴趣可以看看 https://cppdepend.com/blog/loki-the-best-c-library-to-learn-design-patterns-lets-modernize-it/
(重写loki不是已经做了吗,folly啊)
brpc 发布了release note,我就不介绍了
文章
使用 hugetlb 提升性能 https://zhuanlan.zhihu.com/p/680950566
大页可以带来性能提升,什么SDDK都在用,不过话说 redis 为啥不用?避免影响rdb生成?COW开销太大?
另外这有个 hugetop命令hugetop
代码这里 https://gitlab.com/procps-ng/procps
C 异常的误用以及改进 https://zhuanlan.zhihu.com/p/681210803
群友翻译,非常干活,值得看看
不过异常设计的还是太傻呗了
[RFC] Upstreaming ClangIR https://discourse.llvm.org/t/rfc-upstreaming-clangir/76587/19
之前聊到的MLIR 在c/c 上的落地 CIR准备合入到LLVM
感觉clang明显更激进一些,而gcc还是一群老登
Option Soup: the subtle pitfalls of combining compiler flags https://hacks.mozilla.org/2024/01/option-soup-the-subtle-pitfalls-of-combining-compiler-flags/
傻逼locale问题,虽然你是静态连接libstdcxx-static,但是locale并不static
errno and libc https://dxuuu.xyz/errno.html
errno是内核设置还是libc设置?当然是libc
怎么验证?简单来说就是同一个系统调用,调用syscall/通过汇编调用,观察errno变化
asm
gcc 7.3 bug一例 class template argument deduction fails in new-expression
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85883
第八行有问题,低版本的gcc (现在低版本gcc指的是7/8了)用大括号绕过即可,为什么列这个呢,因为我遇到了
Unexpected Ways Memory Subsystem Interacts with Branch Prediction https://johnnysswlab.com/unexpected-ways-memory-subsystem-interacts-with-branch-prediction/
分支预测非常影响性能。这里介绍了几个branchfree写法并且对比了性能,
代码 https://github.com/ibogosavljevic/johnysswlab/blob/master/2023-12-branches-memory/binary_search.cpp#L53
Array Size (in elements) | Original | Conditional Moves | Arithmetics |
---|---|---|---|
4 K | Runtime: 0.22 sInstr: 434 M CPI: 1.96Mem. Data Volume: 0.45 GB | Runtime: 0.14 sInstr: 785 MCPI: 0.728Mem. Data Volume: 0.25 GB | Runtime: 0.19 sInstr: 1.102 MCPI: 0.69Mem. Data Volume: 0.32 GB |
16 K | Runtime: 0.26 sInstr: 511 MCPI: 2.01Mem. Data Volume: 0.49 GB | Runtime: 0.19 sInstr: 928 MCPI: 0.77Mem. Data Volume: 0.39 GB | Runtime: 0.24 sInstr: 1.308 MCPI: 0.72Mem. Data Volume: 0.46 GB |
64 K | Runtime: 0.32 sInstr: 584 MCPI: 2.143Mem. Data Volume: 0.48 GB | Runtime: 0.24 sInstr: 1.064 MCPI: 0.90Mem. Data Volume: 0.25 GB | Runtime: 0.31Instr: 1.504CPI: 0.82Mem. Data Volume: 0.26 GB |
256 K | Runtime: 0.43 sInstr: 646 MCPI: 2.59Mem. Data Volume: 0.36 GB | Runtime: 0.39 sInstr: 1.199 MCPI: 1.28Mem. Data Volume: 0.32 GB | Runtime: 0.47 sInstr: 1.698 MCPI: 1.09Mem. Data Volume: 0.36 GB |
1 M | Runtime: 0.56 sInstr: 727 MCPI: 3.05Mem. Data Volume: 0.67 GB | Runtime: 0.59 sInstr: 1.333 MCPI: 1.72Mem. Data Volume: 0.59 GB | Runtime: 0.70 sInstr: 1.891 MCPI: 1.42Mem. Data Volume: 0.68 GB |
4 M | Runtime: 1.127 sInstr: 798 MCPI: 4.65Mem. Data Volume: 9.94 GB | Runtime: 1.48 sInstr: 1.467 MCPI: 3.1Mem. Data Volume: 3.75 GB | Runtime: 1.59 sInstr: 2.084 MCPI: 2.45Mem. Data Volume: 3.9 GB |
16 M | Runtime: 1.65 sInstr: 870 MCPI: 6.26Mem. Data Volume: 18.48 GB | Runtime: 2.75 sInstr: 1.601CPI: 4.16Mem. Data Volume: 6.95 GB | Runtime: 2.90 sInstr: 2.277 MCPI: 3.18Mem. Data Volume: 7.05 GB |
课外阅读
快排代码
代码在这里 https://github.com/ibogosavljevic/johnysswlab/blob/master/2022-01-sort/
感觉值得展开讲讲。我找作者要了授权,后面还会继续介绍这个
number parsing https://www.cppstories.com/2024/constexpr-number-parsing-cpp23/
有句讲句 from_chars接口有点难用
可以用结构化绑定,更好看一点
c 26可以直接这么用
解析时间字符串 https://www.meetingcpp.com/blog/items/Converting-a-string-view-to-a-time-point-in-Cpp20.html
没有std::chrono::parse?
怎么测试编译器 Testing the MSVC Compiler Backend https://devblogs.microsoft.com/cppblog/testing-the-msvc-compiler-backend/
有点意思
视频
cppcon最近更新了几个重量级的工具类视频,重构,分析,我准备本地复现一下,目前就不总结了,单独发
开源项目介绍
- • asteria[2] 一个脚本语言,可嵌入,长期找人,希望胖友们帮帮忙,也可以加群753302367和作者对线
- • Unilang[3] deepin的一个通用编程语言,点子有点意思,也缺人,感兴趣的可以github讨论区或者deepin论坛看一看。这里也挂着长期推荐了
- • StringZilla 3.0版本,给了一些压测数据,挺有意思。主要思路就是simd加速 https://github.com/ashvardanian/StringZilla/releases/tag/v3.0.0
- • https://github.com/fredrikwidlund/libreactorng 纯c iouring web库