E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Ringbuffer
手把手教会你Disruptor的常用使用场景!(含详细代码示例)
它通过环形缓冲区(
RingBuffer
)和高效的事件处理机制,显著减少了CPU缓存失效和上下文切换的开销。
·
2025-01-22 20:38
后端
高性能队列Disruptor的初体验
它利用环形缓冲区(
RingBuffer
)和无锁的生产者-消费者模型,大幅提升并发性能。
·
2025-01-21 21:46
程序员
socket多线程和
Ringbuffer
详解
关注微信公众号:【快乐程序猿】查看更多篇章相信很多读者都知道多线程是什么,那
RingBuffer
可能就不太清楚了,那我们先来介绍下什么是
RingBuffer
。
走别人不走的路
·
2024-09-10 10:24
linux
c语言
android
Linux网络包的收发流程
一、Linux接收网络包的流程1.网卡是计算机里的一个硬件,专门负责接收和发送网络包,当网卡接收到一个网络包后,会通过DMA技术,将网络包写入到指定的内存地址,也就是写入到
RingBuffer
,这个是一个环形缓冲区
oywLearning
·
2024-09-07 03:12
网络编程
计算机网络
linux
网络
网络协议
深入讲解Linux内核网络设备驱动(图例解析)
Linux内核网络设备在数据收包过程中的位置,下面从宏观的角度介绍数据包从被网卡接收到进入socket接收队列的整个过程:加载网卡驱动,初始化数据包从外部网络进入网卡网卡(通过DMA)将包拷贝到内核内存中的
ringbuffer
Linux加油站
·
2024-08-30 15:24
linux
网络
服务器
架构 高并发框架
二、Disruptor核心概念
RingBuffer
:被看做Disruptor最主要组件,然而从3.0开始
RingBuffer
仅仅负责存
请叫我刘星
·
2024-02-20 12:25
数据库
分布式
spring
cloud
spring
jvm
spring
boot
amdgpu内核中
ringbuffer
和indirect buffer
如图
ringbuffer
.drawio.png
人间正道是沧桑a
·
2024-02-13 17:44
Disruptor介绍及原理讲解
主要是因为有这三个法宝:
RingBuffer
,无锁设计和缓存行填充。RingBufferDisruptor底层采用
RingBuffer
的结构,
RingBuffer
大家都知道,就是一个循环使用下标的
作妖大鹅鹅
·
2024-02-11 06:06
ZLMediaKit 切换用于源的
RingBuffer
背景有这样一个需求,基于webrtc实现的web实时流播放器,有4分屏,最大同时显示4个图像rtsp摄像头的图像。布局是固定的4分屏,但是分屏所显示的摄像头图像可以变化。那么把它抽象为技术实现,就是web同时会与ZLMediaKit建立4个pc对象,这个4个pc对象建立后,就不会销毁(直到web播放器关闭),由ZLMediaKit根据web请求的rtsp摄像头标识,将不同摄像头的流转给web。在Z
mo4776
·
2024-02-07 18:47
ZLMediaKit源码分析
网络
音视频
架构
ESP8266 控制之 : 使用
RingBuffer
USART1 和 USART3互传
简介使用Buffer来避免数据的丢失,或许你自己在使用串口进行收发时会丢失数据,现在我们就来简单使用一下
RingBuffer
创建Rx、Tx的Buffer来避免发送接收丢包或数据丢失问题。
听我一言
·
2024-01-30 00:20
STM32F103C8T6
stm32
嵌入式硬件
单片机
alios thing 信号量_消息队列_消息队列_AliOS Things内核_API参考文档_AliOS Things 文档_IoT物联网操作系统 - 阿里云...
消息队列(queue)使用类似信号量的机制进行任务间的同步,并使用环形缓冲池(
ringbuffer
)来进行消息的队列缓冲管理,以达到任务间收发消息的阻塞和通知管理。
weixin_39575937
·
2024-01-29 18:18
alios
thing
信号量
dmesg的详细用法
dmesg命令用于打印Linux系统开机启动信息,kernel会将开机信息存储在
ringbuffer
中。
时光漫走
·
2024-01-27 05:41
shell脚本语言
LINUX
嵌入式流媒体消息分发队列设计
在流媒体系统设计中,经常会涉及多线程间的通信问题,需要相互分发消费一些信息以及实时音视频数据,如何才能高效安全的简洁的实现这一目标呢,可以采用
ringbuffer
,也可以采用链表等算法。
superxxd
·
2024-01-26 07:44
c++
webrtc
物联网
实时音视频
ringbuffer
+log方式的调试串口
调试串口使用查询方式发送,发送buffer采用环形buffer,打印信息包含文件,函数名和行数。可以在中断中打印调试信息。
sscb0521
·
2024-01-25 08:06
单片机
Linux网络 - 数据包的接收
(第1次拷贝:网卡寄存器->内核为网卡分配的缓冲区
ringbuffer
)网卡发送中断,唤醒处理器。
wufeng无峰
·
2024-01-24 16:22
linux网络
linux
网络
C++无锁队列的原理与实现
CAS操作2.无锁队列方案2.1.boost方案2.2.ConcurrentQueue2.3.Disruptor3.无锁队列实现3.1.环形缓冲区3.2.单生产者单消费者3.3.多生产者单消费者3.4.
RingBuffer
流星雨爱编程
·
2024-01-21 15:52
#编程技巧
开发语言
c++
linux内核协议栈接收数据流程(一)
linux网络接收数据第一站——网卡驱动linux网络接收数据流程的第一站为网卡驱动,网卡接收包流程大致为:网卡硬件接收到包,会将数据包通过DMA映射到预先分配好的
ringbuffer
内存环形缓存中,紧接着使用硬中断告知
krokodil98
·
2024-01-19 22:19
android/linux源码
linux
网络
c语言
网络IO模型
网络包接收流程网络包接收流程.jpg01.当网络数据帧通过网络传输到达网卡时,网卡会将网络数据帧通过DMA拷贝的方式放到DMA环形缓冲区
RingBuffer
中;环形缓冲区
RingBuffer
是网卡在启动的时候分配和初始化的环形缓冲队列
赵帅童学
·
2024-01-15 22:16
【tcp/udp】tcp/udp/icmp丢包分析
一、Linux系统接收网络报文的过程Linux系统接收网络报文的过程:首先网络报文通过物理网线发送到网卡网络驱动程序会把网络中的报文读出来放到
ringbuffer
中,这个过程使用DMA(DirectMemoryAccess
Bogon
·
2024-01-12 17:55
【socket】网卡内部缓冲区、socket缓冲区、滑动窗口
一、网卡内部缓冲区网卡内部的缓冲区,通常称为环形缓冲区(
RingBuffer
)。环形缓冲区是一种用于数据存储和数据传输的结构,它允许数据在网络接口卡(网卡)和计算机操作系统之间进行高效传输。
一尘之中
·
2023-12-31 20:23
网络
linux
编程
网络
linux
高性能内存队列Disruptor入门和实战
目录Disruptor简介Disruptor的设计方案
RingBuffer
数据结构一个生产者单线程写数据的流程多个生产者写数据的流程消费者读数据多个生产者写数据Disruptor核心概念Disruptor
Memory_2020
·
2023-12-26 22:15
后端
架构
Linux 系统是如何收发网络包的?
接收网络包的流程1.网卡是计算机里的一个硬件,专门负责接收和发送网络包,当网卡接收到一个网络包后,会通过DMA(DirectMemoryAccess,直接内存访问)技术,将网络包写入到指定的内存地址,也就是写入到
RingBuffer
_OLi_
·
2023-12-02 07:48
linux
网络
运维
Disruptor
RingBuffer
理解
原文地址:http://ifeve.com/disruptor/1、
RingBuffer
是一个环形结构2、
RingBuffer
不会删除已经写到buffer中的数据,除非是有新的数据覆盖3、每个数据写进来都会有新的序号对应新的数据
菜鸟何时起飞
·
2023-11-24 18:08
c++性能测试工具:google benchmark入门(二)
举个例子,假如我们需要实现一个队列,现在有
ringbuffer
和linkedlist两种实现可选,现在我们要测试两种方案在不同情况下的性能表现://必要的数据结构#include"ring.h"#include"linked_ring.h
编程小世界
·
2023-11-21 20:25
日常小知识点之用户层网络缓冲区(固定内存,
ringbuffer
,chainbuffer)
1:网络缓冲区理解1.1:理解背景我们在网络编程时,通常以五元组,一个fd标识一个连接(套接字fd)。==》每个连接其实有接收消息和发送消息的功能。==》内核为每个连接分配了固定大小的发送缓冲区和接收缓冲区(套接字缓冲区)。==》我们通过相关api接口(如send(),recv())根据五元组标识操作对应缓冲区。以网络通信为例理解,个人理解如下:注释:这里套接字fd对应的缓冲区中的数据,其实是由内
yun6853992
·
2023-11-10 16:26
基础组件/第三方常用库
c语言
缓存
网络
[common c/c++] ring buffer/circular buffer
前言:
ringbuffer
/circularbuffer又名环形队列,其容量是固定的,当数据满的时候,新来的数据会覆盖最古老的数据,这种数据结构的特点是数据的写入不会因为队列满了而停止,同时也会导致旧数据的丢失
ykun089
·
2023-10-31 13:44
#
Common/Linux
C/C++
common
Spring Boot 使用 Disruptor 做内部高性能消息队列
这里写自定义目录标题一、背景二、Disruptor介绍三、Disruptor的核心概念3.1
RingBuffer
3.2SequenceDisruptor3.3Sequencer3.4SequenceBarrier3.5WaitStrategy3.6Event3.7EventProcessor3.8EventHandler3.9Producer
紫水木鱼
·
2023-10-27 07:22
后端Java开发
java
spring
boot
后端
java
Linux 命令(8)—— dmesg
kernel会将开机信息存储在
ringbuffer
中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log/dmesg中。
baboon_chen
·
2023-10-26 09:10
linux
命令
linux
dmesg
Linux 内核打印(高级字符设备六)
dmseg命令 在终端使用dmseg命令可以获取内核打印信息,该命令的具体使用方法如下所示:dmesg命令 英文全称:displaymessage(显示信息) 作用:kernel会将打印信息存储在
ringbuffer
温人之周.
·
2023-10-25 21:57
RK3568
linux驱动开发笔记(迅为)
linux
微信消息从发送到接收,经历了什么?如何防止丢包
一个数据包,从聊天框里发出,消息会从聊天软件所在的用户空间拷贝到内核空间的发送缓冲区(sendbuffer),数据包就这样顺着传输层、网络层,进入到数据链路层,在这里数据包会经过流控(qdisc),再通过
RingBuffer
吃辣椒的喵
·
2023-10-17 14:51
网络
网络
tcp/ip
服务器
mmap(三) mmap测试程序,user和设备驱动传递大量数据
1,将驱动中产生的大量数据通过mmap传递到用户空间构造一个
ringbuffer
,驱动中将产生的数据放入
ringbuffer
,用户空间将
ringbuffer
中的数据读走存在文件中2,driver#include
-佩奇的爸爸
·
2023-10-12 22:37
#
mmap
linux
mmu
mmap
环形缓冲
RingBuffer
和无锁
环形缓冲环形缓冲区,也被称为循环缓冲区或者环形队列,是一种数据结构类型,它在内存中形成一个环形的存储空间。环形缓冲区的特点是其终点和起点是相连的,形成一个环状结构。这种数据结构在处理流数据和实现数据缓存等场景中具有广泛的应用。环形缓冲区的主要作用是存储和管理数据。它可以存储一定数量的数据,并且在数据存储满后,新的数据会覆盖最早的数据,从而实现了一种“先进先出”(FIFO)的数据管理方式。这种数据结
only_
·
2023-10-10 04:43
数据结构
C语言环形队列缓冲-FIFO_
RingBuffer
ring_buffer.h#ifndef__RING_BUFFER_H_#define__RING_BUFFER_H_//#defineRINGBUF_IRQ_SAFE#ifdefRINGBUF_IRQ_SAFE#defineINIT_CRITICAL()uint32_tpriMask=__get_PRIMASK()//屏蔽中断/异常#defineENTER_CRITICAL()__set_PRI
春风得意吃火锅
·
2023-10-09 23:22
单片机C语言
C语言
c语言
开发语言
stm32
单片机
alsa pcm设备之硬件参数
硬件参数包含了stream描述比如格式,采样率,通道数,和
ringbuffer
圆形缓存区大小等.使用snd_pcm_hw_params_t,ALSApcm设备使用了参数重定义系统相关的硬件参数,应用程序首先选择全范围的配置
搬砖盖腾王阁
·
2023-10-09 04:01
音频领域打怪之路
pcm
alsa
linux
alsa pcm设备之软件相关的参数
读写传输可以与此示例计数对齐,通常此值设置为1(无对齐).Startthreshold:Startthreshold参数用来表示stream启动的开始点,对于playback方向,加入samples样本数存在
ringbuffer
搬砖盖腾王阁
·
2023-10-09 04:31
音频领域打怪之路
pcm
alsa pcm接口之总览
Generaloverview(总览)ALSA使用
ringbuffer
(圆形buffer)去存放outgoing(playback播放)和incoming(capture,录音)samples样本,那儿有两个指针
搬砖盖腾王阁
·
2023-10-05 18:02
音频领域打怪之路
pcm
alsa
linux
队列--环形数组实现
github.com/1693905917/DataStructure.git好处对比普通数组,起点和终点更为自由,不用考虑数据移动“环”意味着不会存在【越界】问题数组性能更佳环形数组比较适合实现有界队列、
RingBuffer
加瓦不加班
·
2023-10-05 05:01
数据结构
算法
数据结构
Ubuntu性能分析-ftrace 底层驱动
1、框架介绍ftrace内核驱动可以分为几部分:ftraceframework,
RingBuffer
,debugfs,Tracepoint,各种Tracer。
专注&突破
·
2023-09-30 15:40
ubuntu/debian
性能分析
ftrace
linux新版本io框架 io_uring
从别的博主那copy过来:1io_uring是Linux内核的一个新型I/O事件通知机制,具有以下特点:高性能:相比传统的select/poll/epoll等I/O多路复用机制,io_uring采用了更高效的
ringbuffer
QMCY_jason
·
2023-09-24 00:34
linux
运维
服务器
amdgpu PM4 packet format
CPU与GPU通过
RingBuffer
实现渲染命令的提交,渲染命令作为一个packet被提交到
RingBuffer
上,AMD规定packet的格式,它被分为两部分,Header和IT_BODY(informationbody
人间正道是沧桑a
·
2023-09-14 11:20
Spring Boot 集成全局唯一ID生成器
在实现上,UidGenerator通过借用未来时间来解决sequence天然存在的并发限制;采用
RingBuffer
来缓存已生成的UID,并行化
人人都在发奋
·
2023-09-13 07:02
后端笔记
spring
boot
java
uid
Ringbuffer
为什么这么快?
原文地址:http://ifeve.com/
ringbuffer
/最近,我们开源了LMAXDisruptor,它是我们的交易系统吞吐量快(LMAX是一个新型的交易平台,号称能够单线程每秒处理数百万的订单
迎风飘来
·
2023-09-09 01:53
java
多线程
(转)
Ringbuffer
为什么这么快?
原文地址:http://ifeve.com/
ringbuffer
/最近,我们开源了LMAXDisruptor,它是我们的交易系统吞吐量快(LMAX是一个新型的交易平台,号称能够单线程每秒处理数百万的订单
weixin_33884611
·
2023-09-09 01:21
数据结构与算法
java
linux技术内幕相关工具使用
查看并修改网卡队列#查看网卡接收队列
ringbuffer
最大长度限制和当前队列长度ethtool-gens33#查看是否有丢包如果
ringbuffer
满了会丢弃数据包ethtool-Sens33#这两个结果如果大于
ltgsoldier1
·
2023-09-01 05:29
linux
服务器
网络
C语言动态缓冲区设计
#ifndef__
RINGBUFFER
__H_#define__
RINGBUFFER
__H_#include#include#include#include#include#include#include
豆豆plus
·
2023-08-31 19:36
c语言
系统性能百倍提升典型案例分析:高性能队列Disruptor
Disruptor项目团队曾经写过一篇论文,详细解释了其原因,可以总结为如下:内存分配更加合理,使用
RingBuffer
数据结构,数组元素在初始化时一次性全部创建,提升缓存命中率;对象循环利用,避免
该用户快成仙了
·
2023-08-31 01:32
Disruptor
队列
内存
性能优化
系统性如何能百倍提升?典型案例分析:高性能队列Disruptor
Disruptor项目团队曾经写过一篇论文,详细解释了其原因,可以总结为如下:内存分配更加合理,使用
RingBuffer
数据结构,数组元素在初始化时一次性全部创建,提升缓存命中率;对象循环利用,避免
Java架构设计
·
2023-08-31 01:02
java
程序人生
经验分享
Disruptor
Java架构
4.21 用了 TCP 协议,数据一定不会丢吗?
目录数据包的发送流程:建立连接时丢包流量控制丢包网卡丢包
RingBuffer
过小导致丢包网卡性能不足接收缓冲区丢包两端之间的网络丢包ping命令查看丢包:mtr命令:发生丢包了怎么办用了TCP协议就一定不会丢包吗编辑这类丢包问题怎么解决
陈岂几真幸运
·
2023-08-28 15:11
小林coding
计算机网络
tcp/ip
网络
服务器
Disruptor并发编程框架
Disruptor是一款高性能的并发编程框架,主要具有以下特点和功能:1.
RingBuffer
环形数据结构Disruptor的核心数据结构是
RingBuffer
环形队列,用于存储客户端的并发数据并在生产者和消费者之间传递
diannao720
·
2023-08-23 08:02
架构
分布式
Linux 网络发包流程
哈喽大家好,我是咸鱼之前咸鱼在《Linux网络收包流程》一文中介绍了Linux是如何实现网络接收数据包的简单回顾一下:数据到达网卡之后,网卡通过DMA将数据放到内存分配好的一块
ringbuffer
中,然后触发硬中断
咸鱼Linux运维
·
2023-08-18 02:52
linux
网络
运维
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他