当前位置:  技术问答>linux和unix

关于POSIX message queue的效率问题?

    来源: 互联网  发布时间:2017-01-05

    本文导语:  在queue的大小一定的情况下,比如8k, 发送8k + 接收8k(循环2千万次)与 发送1k + 接收1k(循环2千万次)的执行时间居然几乎无差别! 为什么会这样? | 首先申明,俺自己没有测试过,所...

在queue的大小一定的情况下,比如8k,
发送8k + 接收8k(循环2千万次)与
发送1k + 接收1k(循环2千万次)的执行时间居然几乎无差别!

为什么会这样?

|
首先申明,俺自己没有测试过,所以以下的说法都是猜测:
发送和接收都涉及到几个步骤, 以发送为例,大致分为以下三个步骤
1. 用户态下组织数据
2. 系统调用进入核心态
3. 核心态下将数据从用户空间拷贝到内核空间(放入队列)
所以总的时间消耗为三个步骤时间相加 t = t1 + t2 + t3;
其中系统调用进入核心态涉及上下文切换,是非常耗时的操作,比拷贝8K的数据消耗的时间大的多。
所以造成了发送1K数据和发送8K数据没使用的时间差不多。

|
没有深究过,这个需要看看消息队列的实现,另外数据的移动也可能用到诸如DMA这样的技术

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求助关于posix ipc 对象创建相关问题
  • posix消息队列问题
  • 请教POSIX问题:一个进程中,可以有多个互斥锁麽?
  • POSIX的信号量随内核存在的问题?
  • posix信号处理的一个问题
  • posix线程挂起与恢复问题!
  • POSIX线程的问题:什么函数可以让特定线程等待一会儿?
  • 关于POSIX进程和线程的两个问题
  • 请问posix IPC中使用mq_open()创建消息队列的问题?
  • Posix线程问题!
  • posix定时器问题“undefined reference to `timer_create'”
  • 关于在 red hat 下用posix timer实现高精度定时器的问题 急!!!
  • 在sun os 5.9下 创建一个posix 共享内存 出现的问题
  • 大家帮我看一下下面的程序,Posix共享内存方面的,为什么编译的时候有问题,谢谢
  • 请教一个关于posix消息队列的问题
  • solaris 下调用Posix共享内存函数shm_open,shm_unlink问题。
  • 使用posix_timer编程,内存泄露问题
  • 问使用 posix 条件变量的问题
  • 在linux下使用POSIX多线程库开发应用程序的时候需要定义宏_POSIX_C_SOURCE和_REENTRANT吗?
  • POSIX IPCs 和 System V IPCs
  • makefile中的D_POSIX_C_SOURCE是什么意思?
  • 关于什么是POSIX?
  • 请问以下操作系统中,支持posix的有哪些呢?
  • redhat linux支持什么标准? POSIX, ANSI,SVR4?
  • 谁有关于posix的详细资料
  • 请问那里能下载POSIX函数参考手册
  • aix支持POSIX线程标准吗?
  • 请教POSIX 和 System V 实现的内存共享的相同及不同之处
  • LINUX如何调整POSIX消息队列大小
  • posix共享内存区
  • POSIX 文件系统 Libsqlfs


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3