RT-Thread 宝藏之Ringblk组件

本文最后更新于 1 年前

RT-Thread 宝藏之ringblk组件

序言

ringblk是什么?
ringblk = ring block(环形块缓冲区),它的缓冲区的单位是一个 block , 每次对数据的操作都是以 block 为单位。

还有一个更加常见的 ringbuf(环形缓冲区,一种数据结构)。ringbuf就是比较常见的先入先出(FIFO,First-In-First-Out)的环形缓冲区。

下面是两者的一些对比:

  1. 数据存储方式
    • ringbuf:传统的环形缓冲区,通常由固定大小的单字节组成,数据以连续的方式存储。
    • ringblk:环形块缓冲区,由多个大小不一的数据块组成,每个块可以包含多个字节。
  2. 内存效率
    • ringbuf:可能需要更多的内存拷贝操作,因为它通常以单字节为单位操作数据。
    • ringblk:设计用于减少内存拷贝,通过块操作可以提高内存使用效率。
  3. 适用场景
  • ringbuf:适用于简单的数据流处理,如字符设备驱动程序。
  • ringblk:适用于需要高效处理大块数据的场景,如DMA传输、通信帧的接收与发送、网络通信等。
  1. 性能
    • ringbuf:在处理小数据或字符流时可能表现良好。
    • ringblk:由于减少了内存拷贝(零字节拷贝zero-copy),可能在处理大块数据时提供更好的性能。

ringblk提供了更高级的特性,特别是在处理大块数据和需要高效率数据传输的场景中。
ringbuf则适用于对简单连续数据流的处理。

RT-Thread 环形块状缓冲区 参考资料


RT-Thread 宝藏之Ringblk组件
https://www.oikiou.top/2024/5b8b4de/
作者
Oikiou
发布于
2024年6月4日
许可协议
Nickname
Email
Website
0/500
  • OωO
  • |´・ω・)ノ
  • ヾ(≧∇≦*)ゝ
  • (☆ω☆)
  • (╯‵□′)╯︵┴─┴
  •  ̄﹃ ̄
  • (/ω\)
  • ∠( ᐛ 」∠)_
  • (๑•̀ㅁ•́ฅ)
  • →_→
  • ୧(๑•̀⌄•́๑)૭
  • ٩(ˊᗜˋ*)و
  • (ノ°ο°)ノ
  • (´இ皿இ`)
  • ⌇●﹏●⌇
  • (ฅ´ω`ฅ)
  • (╯°A°)╯︵○○○
  • φ( ̄∇ ̄o)
  • ヾ(´・ ・`。)ノ"
  • ( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
  • (ó﹏ò。)
  • Σ(っ °Д °;)っ
  • ( ,,´・ω・)ノ"(´っω・`。)
  • ╮(╯▽╰)╭
  • o(*////▽////*)q
  • >﹏<
  • ( ๑´•ω•) "(ㆆᴗㆆ)
  • 😂
  • 😀
  • 😅
  • 😊
  • 🙂
  • 🙃
  • 😌
  • 😍
  • 😘
  • 😜
  • 😝
  • 😏
  • 😒
  • 🙄
  • 😳
  • 😡
  • 😔
  • 😫
  • 😱
  • 😭
  • 💩
  • 👻
  • 🙌
  • 🖕
  • 👍
  • 👫
  • 👬
  • 👭
  • 🌚
  • 🌝
  • 🙈
  • 💊
  • 😶
  • 🙏
  • 🍦
  • 🍉
  • 😣
  • 颜文字
  • Emoji
  • Bilibili
0 comments
No comment