提醒:Ring Buffer 的应用 2012年02月04日

来自: 云风的 BLOG
演示:以MSN订阅提醒为例 订阅到哪吒,有更新提醒我
哪吒机器人提醒:
提醒:云风的 BLOG
【标题】Ring Buffer 的应用
【摘要】这是一篇命题作文,源于今天在微薄上的一系列讨(好吧,也可以说是吵架)。其实方案没有太多好坏,就看你信不信这样做能好一些或坏一些。那么,整理成 blog 写出,也就是供大家开拓思路了。我理解的需求来源于网络服务提供程序的一个普遍场景:一个服务器程序可能会收到多个客户端的网络数据流,在每个数据流上实际上有多个独立的数据包,只有一个数据包接收完整了才能做进一步的处理。如果在一个网络连接上数据包并不完整,就需要暂时缓存住尚未接收完的数据包。问题是:如何管理这些缓冲区比较简洁明了,且性能高效。其实这个有许多解决方案,比如为每个网络连接开一个单独的固定长度的 buffer 。或是用 memory pool 等改善内存使用率以及动态内存分配释放,等等。今天在微薄上吵架也正是在于这些方案细节上,到底好与不好,性能到底如何。既然单开一篇 blog 了,我不像再谈任何有争议的细节,仅仅说说,用 ring buffer 如何解决这个问题。 具体点说,我倾向于用 c 语言来做这种偏底层、业务简单的模块。为了减低工作量,可以使用一些成熟的库,比如 libev 等。类似的库多半提供的是一种回调机制的框... (02-04 11:56)
收藏 |  评论 |  推荐给好友  | 
本文共有 0 次分享
评论
共有 - 条评论


我要反馈