专栏首页C++ 动态新闻推送C++ 动态新闻推送 第17期

C++ 动态新闻推送 第17期

C++ 动态新闻推送 第17期

reddit/hackernews/lobsters/meetingcpp摘抄一些c++动态。

每周更新

周刊项目地址 github,在线地址

discord讨论群组 |飞书讨论群组|知乎专栏

欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue


资讯

编译器信息最新动态推荐关注hellogcc公众号

本周周报github直达

  • VS 2022预览版出了 https://devblogs.microsoft.com/visualstudio/visual-studio-2022-preview-1-now-available/

文章

介绍small_vector, small_vector有很多实现,算是一个小对象优化

#include <cassert>

consteval int f(int i) { return i; }

constexpr int g(int i) {
    if consteval {
        return f(i) + 1; // ok: immediate function context
    } else {
        return 42;
    }
}

consteval int h(int i) {
    return f(i) + 1; // ok: immediate function context
}

static_assert(42 + 1 == h(42));

int main() {
  int i = 42;
  //h(i); // error: the value of 'i' is not usable in a constant expression
  assert(42 == g(i));
}

https://godbolt.org/z/rjeodeMoP

用concept来实现CRTP模式,遇到了很多阻碍,如果有Unified Function Call Syntax , UFCS说不定能解决,当前不推荐,可以当做一个拓展眼界的思路看一看

总结整理写的挺好

  • io_uring 大致可以分为默认、IOPOLLSQPOLLIOPOLL + SQPOLL 四种模式。可以根据操作是否需要轮询选择开启 IOPOLL。如果需要更高实时性、减少 syscall 开销,可以考虑开启 SQPOLL
  • 如果只是使用 Buffered I/O,io_uring 相比于用户态直接调用 syscall,通常不会有特别大的性能提升。io_uring 内部通过 io-wq 执行 Buffered I/O 操作,和直接在用户态调用 syscall 在本质上没有太大区别,只能减小用户态内核态切换的开销。io_uring 提交任务要走一遍 io_uring_entersyscall,延迟和吞吐量应该比不上 mmap 之类的文件 I/O 操作方法。
  • 如果不想在提交时立刻尝试执行一次任务(比如之前提到的文件内容已经在 page cache 的情况),可以加上 IOSQE_ASYNC flag,强制走 io-wq。
  • 使用 IO_SQE_LINK, IOSQE_IO_DRAINIOSQE_IO_HARDLINK 可以控制任务的依赖关系。
  • Can memcpy be implemented in LLVM IR?

TODO 不懂LLVM IR,后面了解一下

介绍一个快的循环队列,其实技巧就是mmap + bip buffer类似的技术 代码在这里

介绍brpc的小组件,brpc的小技巧很多,文档也很详细,值得一看

  • 开源数据库OceanBase代码导读 和代码相关的不多,这个建议攒一起看
    • https://zhuanlan.zhihu.com/p/379789426
    • https://zhuanlan.zhihu.com/p/380681441
    • https://zhuanlan.zhihu.com/p/381020426
  • The Unfair Mutex

用原子量自旋来实现的mutex,代码在这里

TODO: 阅读 Futexes Are Tricky

介绍了模版参数的一些场景

介绍duckdb数据结构设计的,有点意思

leveldb写路径代码走读

视频

项目

  • 实现match https://github.com/BowenFu/matchit.cpp
#include "matchit/core.h"
#include "matchit/patterns.h"
#include "matchit/expression.h"
using namespace matchit;

constexpr int32_t factorial(int32_t n)
{
    assert(n >= 0);
    return match(n)(
        pattern(0) = expr(1),
        pattern(_) = [n] { return n * factorial(n - 1); }
    );
}
  • https://github.com/Tencent/yadcc 腾讯开源分布式编译系统 编译加速缓存二进制
  • https://github.com/Tencent/TBase 腾讯开源分布式PG数据库tbase c的实现,复用了PG的代码

看到这里或许你有建议或者疑问或者指出错误,请留言评论! 多谢! 你的评论非常重要!也可以帮忙点赞收藏转发!多谢支持!

本文永久链接

This site is open source. Improve this page.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • C++ 动态新闻推送 第34期

    从reddit/hackernews/lobsters/meetingcpp摘抄一些c++动态

    王很水
  • C++ 动态新闻推送 第35期

    怎么保证一个函数只被调用一次呢,这里有个点子,Destructive separation: move away and call Matt Godbolt a...

    王很水
  • C++ 动态新闻推送 第33期

    很多代码场景下c++的灵活性要高于强制安全检查,且一些场景下rust生成的汇编不如c++少

    王很水
  • C++ 动态新闻推送 第37期

    VS 2022出了 Visual Studio 2022 now available

    王很水
  • C++ 动态新闻推送 第26期

    从reddit/hackernews/lobsters/meetingcpp摘抄一些c++动态。

    王很水
  • C++ 动态新闻推送 第25期

    从reddit/hackernews/lobsters/meetingcpp摘抄一些c++动态。

    王很水
  • C++ 动态新闻推送 第24期

    从reddit/hackernews/lobsters/meetingcpp摘抄一些c++动态。

    王很水
  • C++ 动态新闻推送 第23期

    从reddit/hackernews/lobsters/meetingcpp摘抄一些c++动态。

    王很水
  • C++ 动态新闻推送 第22期

    从reddit/hackernews/lobsters/meetingcpp摘抄一些c++动态。

    王很水
  • C++ 动态新闻推送 第21期

    从reddit/hackernews/lobsters/meetingcpp摘抄一些c++动态。

    王很水
  • C++ 动态新闻推送 第20期

    从reddit/hackernews/lobsters/meetingcpp摘抄一些c++动态。

    王很水
  • C++ 动态新闻推送 第19期

    从reddit/hackernews/lobsters/meetingcpp摘抄一些c++动态。

    王很水
  • C++ 动态新闻推送 第18期

    从reddit/hackernews/lobsters/meetingcpp摘抄一些c++动态。

    王很水
  • C++ 动态新闻推送 第16期

    从reddit/hackernews/lobsters/meetingcpp摘抄一些c++动态。

    王很水
  • C++ 动态新闻推送 第15期

    从reddit/hackernews/lobsters/meetingcpp摘抄一些c++动态。

    王很水
  • C++ 动态新闻推送 第14期

    从reddit/hackernews/lobsters/meetingcpp摘抄一些c++动态。

    王很水
  • C++ 动态新闻推送 第13期

    从reddit/hackernews/lobsters/meetingcpp摘抄一些c++动态。

    王很水
  • C++ 动态新闻推送 第11期

    从reddit/hackernews/lobsters/meetingcpp摘抄一些c++动态。

    王很水
  • C++ 动态新闻推送 第10期

    从reddit/hackernews/lobsters/meetingcpp摘抄一些c++动态。

    王很水

扫码关注云+社区

领取腾讯云代金券