logo

ZYXeeker`s blog

首页 标签 便笺 归档 关于

原子读写锁 —— 测试

上一篇加上测试会很长的篇幅,单独另写一篇 原子读写锁的主要逻辑和相关的锁管理器均已实现完成,这里编写一个测试用例和标准库中的 shared_mutex 进行对比 实现统一封装为了便于测试,这里对 AtomicSharedMutex 和
2025-01-14 C++ , Async , HPC

原子读写锁 —— 实现

前置理论:原子操作 设计从前文出发,读写锁所需要只需要一个 uint32_t 类型的成员变量来记录写者的状态与读者数量,但由于是原子版本,所以记录状态的成员变量将会用 std::atomic_uint32_t 进行实现,同时运用编译期得
2025-01-10 C++ , Async , HPC

原子读写锁 —— 流程与自旋

前言在 C++ 17 之前的标准中并不存在读写锁的对应封装,因此对于不同平台下需要分别进行实现,当然也可以采取 N2406 - Mutex, Lock, Condition Variable Rationale 的提案中的 shared_m
2025-01-03 C++ , Async , HPC

重构与优化 —— 追踪分析

硬件 & 版本依据:ARM A53,ARMv7,ARM GCC 11.1.0 前言这里针对前面的总结进行对应的分析,主要从三个点出发: 内存频率 内存管理 锁 数据分发 内存管理与锁通过 uftrace 对应用层调用进行追踪
2024-12-05 Refactor , Performance

重构与优化 —— 代码分析

硬件 & 版本依据:ARM A53,ARMv7,ARM GCC 11.1.0 前言最近学习性能优化时想起这么多项目当前使用的数据缓冲队列,虽然经历了多个产品版本迭代,但是并没得到重视因此并没有进行良好的改进(毕竟代码和人一个能跑
2024-11-28 Refactor , Performance

程序性能优化 —— 循环优化

「程序性能优化理论与方法」一些笔记由于作者是使用的 X86 平台进行的测试,考虑到手上实际的设备和环境,这些更偏向于理论硬件 & 版本依据:ARM A53,ARM GCC 11.1.0 前言代码中其实很多逻辑均为循环,虽然在大多
2024-11-22 HPC

程序性能优化 —— 过程优化

CSAPP + 「程序性能优化理论与方法」一些笔记由于作者是使用的 X86 平台进行的测试,考虑到手上实际的设备和环境,这些更偏向于理论硬件 & 版本依据:ARM A53,ARM GCC 11.1.0 前言虽然通过指定编译器的优
2024-11-14 HPC

C++中数据转换设计 —— 对接 Json 转换

Json 库:NlohmannJson 可以根据实际情况进行修改 前言在很多场景中,使用 Json 作为配置保存和数据传输是一个很好的选择,比如 ProtoBuf3 就自带了两者之间的转换。同时这个方式能有效的解决前面所提到的数据类型不
2024-08-09 C++

C++中数据转换设计 —— 实现反射

书接上回,上回完成了数据的二进制转换,在这回需要对结构体的数据成员实现 反射(reflection) 何为反射?在其他大多数语言中有反射的机制,这种机制能在运行态时能够获取到一个类中的所有属性和方法的集合,比如 JS 就能通过Objec
2024-08-08 C++

C++中数据转换设计 —— 二进制数据转换

前言在之前的项目架构中对应用功能进行了分离调整,并使用了 IPC 来处理进程间的交互,虽然是嵌入式设备但是在空间性能足够的情况下采用了 ProtoBuf 来对数据进行解析传递。但到了后面的项目中我发现其他同事采用的数据结构为 Json ,毕
2024-07-31 C++
下一页
Powered by Hexo Theme