系统软件性能调优策略(一)——通过有名管道FIFO来检测消息队列中是否可读
来源:互联网 发布:淘宝买枪的暗语是什么 编辑:程序博客网 时间:2024/05/01 16:40
在基于网络的开发中,socket的发送、接收状态,可以通过select来进行检测。但如果又有其他的业务要处理,比如处理消息队列,则可能会出现两难的情况:
1)tmval.tv_usec = 20;
select(sockid,,,,&tmval);
select等待指定时间,如果期间有消息需要处理,则会造成CPU资源的浪费、业务流程处理的延时,而产生性能降低;
2)select(sockid,,,,0)
NO_WAIT方式,则可能会造成系统空转,CPU无谓负荷高,造成系统资源的浪费。
一种好的处理方式是,借用复用I/O的技术,将队列的读取转换为有名管道FIFO的状态检测,具体如下:
这样,即使是在以下任何一种情况下,都会使得select被激活并返回,就不会造成CPU资源的效率,并且系统的性能将大大得到提高。
备注:
此法,只适用于Unix。由于Windows上的select仅仅对socket有效,所以此法不适用。
- 系统软件性能调优策略(一)——通过有名管道FIFO来检测消息队列中是否可读
- 进程间通信——有名管道(FIFO)
- 通信方式详解,无名管道pipe,有名管道fifo,共享内存share memory,消息队列msg
- linux 有名管道(FIFO)
- linux 有名管道(FIFO)
- linux 有名管道(FIFO)
- linux 有名管道(FIFO)
- 系统软件性能调优策略(三)
- linux16.04 中创建 有名管道 fifo
- 【七】 进程间通信——(FIFO)有名管道
- Linux进程间通信——有名管道 FIFO 详解
- (二十七)进程间通信——fifo有名管道
- 有名管道(FIFO)的用法
- linux系统中的有名管道(FIFO)
- FIFO 有名管道
- 有名管道FIFO实例
- FIFO 有名管道
- IPC ------有名管道fifo
- GridPanel 列表 js弹winodw, js tab
- 配置 Windows 时间服务以使用内部硬件时钟
- 让root帐户登陆Fedora 12(转)
- java jvm 参数 -Xms -Xmx -Xmn -Xss 调优总结
- Open/Close window
- 系统软件性能调优策略(一)——通过有名管道FIFO来检测消息队列中是否可读
- java异常:java.lang.reflect.InvocationTargetException
- 低调做人,高调做事!
- 破解apk 包下面的layout xml 文件
- sysgen环境变量到底怎么产生作用的?
- android代码格式自动修正
- ExtJs基本知识点
- MFC中的ID命名规则
- AyncTask 实战 模拟GridView 动态更新效果