加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 缓冲到硬盘

发布时间:2020-12-16 07:09:53 所属栏目:百科 来源:网络整理
导读:我收到了固定费率的大量数据.我需要在不同的线程上对这些数据进行一些处理,但这可能比数据进入的速度慢,所以我需要缓冲数据.由于可用RAM中的数据量很快就会耗尽,因此需要溢出到硬盘上.我可以做的是像文件系统支持的管道,所以编写器可能被文件系统阻止,但不是
我收到了固定费率的大量数据.我需要在不同的线程上对这些数据进行一些处理,但这可能比数据进入的速度慢,所以我需要缓冲数据.由于可用RAM中的数据量很快就会耗尽,因此需要溢出到硬盘上.我可以做的是像文件系统支持的管道,所以编写器可能被文件系统阻止,但不是由读取器运行太慢.

这是一套粗略的要求:

>读取器运行速度太慢不应阻止写入.
>如果数据读取速度足够慢以至于可用RAM耗尽,则应该溢出到文件系统.写入磁盘可以阻止.
>如果没有数据可用,则读取应该阻止,除非编写器关闭了流.
>如果读者能够跟上数据,那么它永远不应该打到硬盘上,因为RAM缓冲区就足够了(好但不是必需的).
>在消耗数据时(或不久之后)应该恢复磁盘空间.

Windows中是否存在这样的机制?

解决方法

这看起来像一个经典的消息队列.您是否考虑过MSMQ或类似问题? MSMQ拥有您要求的所有属性.您可能希望使用直接寻址来避免Active Directory http://msdn.microsoft.com/en-us/library/ms700996(v=vs.85).aspx并使用本地或TCP / IP队列地址.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读