
低延迟
文章平均质量分 71
一只牛_007
这个作者很懒,什么都没留下…
展开
-
互斥锁与自旋锁(用户态)的性能比较
故系统可能会在临界区调度到其他线程,最坏的情况是其他线程不停的尝试获取这个锁,但因为获取到这个锁的线程还在等待下一次调度,导致白白浪费宝贵的CPU时间,故我们可以在lock()函数中插入一条。但如果临界区内的任务非常轻量,甚至轻量到比加锁解锁的开销还小的情况下,再去维护这个队列的话,从开销上来看就不那么划算,反而直接使用自旋锁这种简单的机制能获得更高的效率。我把yield去掉以后确实自旋锁慢了好几倍,但是我不理解的是,我只开了三个线程,我是8核心16线程的电脑,按理说这三个线程都不应该被切掉啊。原创 2024-01-26 20:52:44 · 1283 阅读 · 0 评论 -
Kernel Bypass
Solarflare低延迟万兆网卡配置和性能调优实践 - 知乎 (zhihu.com)使用solarflare网卡降低网络IO延迟 - 知乎 (zhihu.com)转载 2023-02-25 21:28:03 · 519 阅读 · 0 评论 -
numa架构
理解 NUMA 架构 - 知乎 (zhihu.com)十年后数据库还是不敢拥抱NUMA? - 知乎 (zhihu.com)结论:要开NUMA,然后一定要进行绑核,不然性能跟关闭NUMA相当。绑核要分配的内存同一个node。转载 2023-02-25 20:24:18 · 485 阅读 · 0 评论 -
linux核隔离实操
linux系统CPU隔离isolcpu参数设置_放学有种别跑、的博客-优快云博客_linux cpu隔离【Linux】隔核绑核_熠熠微光的博客-优快云博客_linux绑核命令原创 2023-02-09 12:28:36 · 1008 阅读 · 0 评论 -
细说时间测量RDTSC和RDTSCP
细说RDTSC的坑原创 2022-08-09 15:33:36 · 6602 阅读 · 0 评论 -
几种取时间的方法(附代码)
几种取时间的方法原创 2022-08-09 15:11:58 · 3465 阅读 · 0 评论 -
低延迟文章引用
Linux获取纳秒时间戳的正确方式 - 知乎Linux低延迟服务器系统调优 - 知乎使用solarflare网卡降低网络IO延迟 - 知乎转载 2022-08-09 10:28:00 · 253 阅读 · 0 评论 -
RDMA技术详解——Send/Receive操作
在这博客中,我们学习了如何使用RDMA verbs API。同时也介绍了队列的概念,而队列概念是RDMA编程的基础。最后,我们演示了RDMA send操作,展现了缓冲区的数据是如何在从一个系统搬运到另一个系统上去的。...翻译 2022-07-28 17:02:27 · 1288 阅读 · 0 评论 -
RDMA技术详解——RDMA核心概念
RDMA内存注册 和 队列相关的概念 以及数据发送接收流程介绍原创 2022-07-28 16:24:04 · 2614 阅读 · 0 评论 -
RDMA技术详解——原理和三种实现方式
1、InfiniBand(IB): 从一开始就支持RDMA的新一代网络协议。由于这是一种新的网络技术,因此需要支持该技术的网卡和交换机。2、RDMA过融合以太网(RoCE): 即RDMA over Ethernet, 允许通过以太网执行RDMA的网络协议。这允许在标准以太网基础架构(交换机)上使用RDMA,只不过网卡必须是支持RoCE的特殊的NIC。3、互联网广域RDMA协议(iWARP): 即RDMA over TCP, 允许通过TCP执行RDMA的网络协议。这允许在标准以太网基础架构(交换机)上..原创 2022-07-28 11:20:48 · 6583 阅读 · 0 评论 -
RDMA技术详解——DMA和RDMA概念
RDMA是一种概念,在两个或者多个计算机进行通讯的时候使用DMA, 从一个主机的内存直接访问另一个主机的内存。 RDMA是一种host-offload, host-bypass技术,允许应用程序(包括存储)在它们的内存空间之间直接做数据传输。具有RDMA引擎的以太网卡(RNIC)–而不是host–负责管理源和目标之间的可靠连接。...转载 2022-07-28 10:18:58 · 1032 阅读 · 0 评论 -
C++二维数组按行遍历和按列遍历的区别
按行遍历的效率更高。(重要前提假设:数组,按行储存;对于clickhouse-client-cpp,由于数据是按列存储的,按列遍历的效率更好)数组在内存中是按行储存的,按行遍历时可以由指向数组第一个数的指针一直往下走,就可以遍历完整个数组,而按列遍历则要获得指向每一列的第一行的元素的指针,然后每次将指针指下一行,但是指针的寻址很快,所以不会有明显的区别。按行遍历比按列遍历效率高具体体现在以下几点1、CPU高速缓存计算机存在Cache机制,当处理器发出内存访问请求时,会先查看缓存内是否有请原创 2022-01-12 11:27:42 · 3849 阅读 · 1 评论 -
高效率读写文件方法比较
fstream与 C 风格(例如fread 和 fwrite )两种读写文件方法的效率比较_xingcen的博客-优快云博客C/C++文件操作效率比较——FILE/fstream_shudaxia123的专栏-优快云博客C/C++快速读写磁盘数据的方法-块读取/异步/优化分析算法/内存文件映射的原理和使用_自由理想的足迹-优快云博客简要总结计算机各种延时(寄存器、cache、内存、磁盘)_jizhu4873的博客-优快云博客...原创 2021-09-28 19:33:12 · 524 阅读 · 0 评论 -
pb,json,二进制,xml数据对比
1. 数据大小对比大多是整数和浮点型的数据,pb比二进制大小减少30%2.序列化和反序列化对比参考:Protobuf 有没有比 JSON 快 5 倍?-InfoQ序列化方案选型对比 - JSON/ProtocolBuffer/FlatBuffer/DIMBIN - 阿里云技术博客的个人空间 - OSCHINA - 中文开源技术交流社区...原创 2021-09-27 17:47:17 · 823 阅读 · 0 评论 -
使用多线程会加快文件读取速度吗?
前几天遇到一个很有意思的问题,提炼出来就是使用多线程去读取文件的话会加快读取速度吗?在往下看之前先自己想一想,同样如果在面试中问你这个问题该怎么回答呢?假设有一个文件大小为10G,我们需要将其读取到内存中(假设内存能容纳下该文件),那么使用多个线程分块去读取的话会加快读取速度吗,比如我们创建两个线程,一个线程读取前5G数据;另一个线程读取后5G数据,这会比只是用一个线程将其读入内存快吗?先说答案,使用多个线程去读取文件通常是一个bad idea。为什么?烧菜是需要时间的为什么使用多个线原创 2021-08-10 09:28:24 · 2615 阅读 · 2 评论 -
CPU高速缓存行对齐和代码优化
关于内存字节对齐:https://blog.youkuaiyun.com/yizhiniu_xuyw/article/details/109622878CacheLine众所周知,计算机将数据从主存读入Cache时,是把要读取数据附近的一部分数据都读取进来这样一次读取的一组数据就叫做CacheLine,每一级缓存中都能放很多的CacheLine两种方法查看:1.cat /sys/devices/system/cpu/cpu0/cache/index0/coherency_line_size2.ca.原创 2021-06-06 19:56:27 · 1443 阅读 · 0 评论 -
Linux DMA 内存拷贝与memcpy 速率比较
驱动层代码:#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/module.h>#include <linux/device.h>#include <linux/cdev.h>#include <linux/dmaengine.h>#include <linux/wait.h&g..原创 2021-06-01 17:57:06 · 1487 阅读 · 0 评论 -
无锁环形队列的几种高效实现
1.环形队列是什么队列是一种常用的数据结构,这种结构保证了数据是按照“先进先出”的原则进行操作的,即最先进去的元素也是最先出来的元素.环形队列是一种特殊的队列结构,保证了元素也是先进先出的,但与一般队列的区别是,他们是环形的,即队列头部的上个元素是队列尾部,通常是容纳元素数固定的一个闭环。C代码实现见:https://github.com/dodng/fast_ring_queue2.环形队列的优点 1.保证元素是先进先出的是由队列的性质保证的,在环形队列中通过对队列的顺...原创 2021-02-21 15:27:23 · 6280 阅读 · 0 评论