0

限制:我的系统有 250MB RAM 内存可用。生产者生成的数据量约为 5Mb/秒。我需要提供大约 30 秒的缓冲区。所以大约150MB...


我想要实现的目标:在 tmpfs 挂载中实现单生产者单消费者环缓冲区。一个线程应该作为生产者填充缓冲区,多个线程应该从缓冲区中获取数据。


到目前为止,我已经尝试过vectors(c++) 都导致分配错误。似乎使用连续内存分配不起作用(大约 50 MB)。deque另一方面,使用(非连续)工作正常。但我仅限于关于内存管理的内核响应,可用内存可能低于初始化缓冲区的预期数量......这就是为什么我宁愿使用tmpfs它,因为它以预定义的大小安装。

使用包含具有相关并发安全方法和属性(可能是无锁?)的循环缓冲区的类,我可以使用一系列文件创建缓冲区,tmpfs每个文件的持续时间为 1 秒。

与双端队列实现相比,这是否足够快,或者我会感觉到从多个线程同时访问文件引起的延迟?

你的想法是什么家伙......我错过了什么吗?......

4

0 回答 0