共享内存中自建hash的一种方法
本文介绍在共享内存中自建hash的一种方法。 下图所示的共享内存有一个writer和多个reader,为了提高数据存取效率,共享内存中的数据需要按hash组织。 注:本文不讨论writer和和reader之间的同步问题,具体可由信号量、文件锁等方式实现。 初步想法是将整块共享内存划分成一个下标为0~n的数组,如下图所示。数据Record的key经过Hash计算后得到hashcode...
本文介绍在共享内存中自建hash的一种方法。 下图所示的共享内存有一个writer和多个reader,为了提高数据存取效率,共享内存中的数据需要按hash组织。 注:本文不讨论writer和和reader之间的同步问题,具体可由信号量、文件锁等方式实现。 初步想法是将整块共享内存划分成一个下标为0~n的数组,如下图所示。数据Record的key经过Hash计算后得到hashcode...
Cyber RT是apollo的运行环境框架,提供了模块动态加载机制。 本文基于apollo v6.0介绍Cyber RT的模块加载流程。 Cyber RT模块初探 apollo里面的很多功能都是基于Cyber RT的模块框架开发的,其生命周期由Cyber RT管理。 先介绍下两个容易混淆的概念,module(模块)和component(组件),在Cyber RT中,一个module可...
车载软件开发调试,不可能每次都出车路测,否则成本太高。 apollo中提供了cyber_recorder工具,可以将报文录制下来,保存为文件。这样,实际路测的时候,可以把相关报文保存下来,后续可以通过报文回放进行开发调试。 本文主要基于apollo v6.0介绍cyber_recorde的报文录制功能。 cyber_recorder录制的文件结构如下图所示,各组成部分由protocolbu...
一、背景 二、排查点及优化方法 TF卡控制器有没有问题 TF卡有没有问题 业务层写卡逻辑有没有问题 存储性能的其他优化思路 三、参考资料 本文根据一个实际案例介绍TF卡存储性能调优思路。 阅读本文前,建议先阅读下这三篇文章: 《NAND Flash基础知识简介》 《Flash写入性能下降问题》 ...
本文主要介绍文件碎片对Flash性能的影响。 阅读本文前,建议先阅读下这两篇文章:《NAND Flash基础知识简介》、《Flash写入性能下降问题》。 一、簇(cluster) 前面的文章介绍了flash里面的两个概念:block(flash的最小擦除单元)和page(flash读写的最小单元)。 文件系统层面有个簇(cluster, 有些地方也称为allocation unit)...
一、写性能下降 二、预留空间 三、TRIM命令 四、参考资料 在《NAND Flash基础知识简介》中,我们介绍了NAND Flash的一些特征。 本文主要从文件操作的角度看下写入性能问题。 说明:本文是基于参考文档1、2、3、4做的意译,中间加入了自己的理解。如有需要,可以参阅原文。 现代操作系统是通过FBL(Flash Translation Layer)和存储介质...
一、Flash基本组成单元:SLC/MLC/TLC 二、Flash的结构及特点 Flash的结构 Program/Erase Cycles 三、The Flash Translation Layer 逻辑地址映射 磨损均衡 垃圾回收 写放大因子 预留空间 ...
本文介绍日常工作中模块间解耦,并进行抽象封装的一个例子。 一、问题提出 在一个嵌入式设备中,视频相关业务流程如下图所示,DSP采集编码后,生成H264数据,然后对H264数据分别进行MP4、RTP、PS封装,封装后形成的数据进入对应的缓存队列。缓存队列是DSP和APP共享的,DSP写入,APP读取。 业务层(APP层)的录像模块(包括循环录像、事件录像等)从mp4数据包缓存队列中读取数...
毕业前准备校招面试的时候,和同学一起刷《高质量C++/C编程指南》,以为作者林锐是个严肃的学者(老学究)。 《软件工程思想》彻底颠覆了我对作者的认知。作者不仅技术文章写的好,文采也很出众,思维、行为都很活跃,很多思想在二十年后的今天仍然适用。 下面是《软件工程思想》的精华摘录,原汁原味的鸡汤,闲暇时不妨品下,可能会有些许收获。如果想拜读原文,可以从这里下载:软件工程思想。 一、软件工程的...
一、音视频数据封装 1. 头部结构 2. payload结构 2.1 H264基础知识 2.2 RTP基础知识 2.3 AVTP封装h264_payload 二、媒体同步 3.1 AVTP Presentation...