小红花·文摘
  • 首页
  • 广场
  • 排行榜🏆
  • 直播
  • FAQ
Dify.AI

本文探讨了Linux内核网络栈中的net_device和net_device_ops结构体,分析了它们在网络设备驱动与内核之间的接口作用。重点介绍了NAPI收包模型在中断与轮询之间的切换,以提高高负载下的性能,并讨论了多队列架构的并行处理能力及描述符环形缓冲区在数据传输中的重要性,最后强调了环形缓冲区大小对延迟和吞吐量的影响。

【Linux 网络子系统深度拆解】net_device 与网卡驱动模型:从硬件到内核的接口契约

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-04-20T00:00:00Z

文章讨论了在ARM64架构下,内核模块中的环形缓冲区因缺乏内存屏障而导致的数据竞争问题。调试发现,更新索引和写数据的顺序可能在ARM上被重排,导致消费者读取到过时数据。通过添加适当的内存屏障(smp_wmb和smp_rmb),成功解决了这一问题。文章强调了理解编译器与CPU重排的区别,以及在并发编程中正确使用屏障的重要性。

Linux 内核的内存屏障:一个让我调了三天的 bug

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-03-31T00:00:00Z

作者分享了一个N-Body模拟项目,使用环形缓冲区存储天体轨迹。最初使用DrawLine绘制时,绘制10万个点耗时50毫秒,性能瓶颈明显。改用ID2D1PathGeometry后,绘制调用次数减少,性能提升至6毫秒,优化效果显著。总结强调理解Draw Call成本和量化测试的重要性。

更复杂的代码,为何跑得快了10倍?一次Draw Call优化引发的思考

dotNET跨平台
dotNET跨平台 · 2025-08-06T00:01:52Z
为高频交易设计亚微秒队列

在孟买的交易中心,工程师Chandan和Avinash面临性能危机。Avinash使用基于锁的队列,而Chandan设计了无锁的环形缓冲区。经过比较,Chandan的设计在高负载下表现更佳,提升了性能。两人讨论了锁与无锁的优缺点,最终决定结合各自的优势。

为高频交易设计亚微秒队列

DEV Community
DEV Community · 2025-04-22T21:08:45Z
如何用rust实现一个异步channel

本文介绍了实现类似go的channel的过程,并与async-channel进行了性能比较。作者通过自己实现一个存放值的环形缓冲区和任务队列来实现通信共享内存。性能测试结果显示,在发送者和接收者数量不等的情况下,wd_tools::channel的性能优于async-channel。文章还提到了异步环境下的一些考虑因素。

如何用rust实现一个异步channel

Rust.cc
Rust.cc · 2023-06-28T07:30:39Z
  • <<
  • <
  • 1 (current)
  • >
  • >>
👤 个人中心
在公众号发送验证码完成验证
登录验证
在本设备完成一次验证即可继续使用

完成下面两步后,将自动完成登录并继续当前操作。

1 关注公众号
小红花技术领袖公众号二维码
小红花技术领袖
如果当前 App 无法识别二维码,请在微信搜索并关注该公众号
2 发送验证码
在公众号对话中发送下面 4 位验证码
小红花技术领袖俱乐部
小红花·文摘:汇聚分发优质内容
小红花技术领袖俱乐部
Copyright © 2021-
粤ICP备2022094092号-1
公众号 小红花技术领袖俱乐部公众号二维码
视频号 小红花技术领袖俱乐部视频号二维码