当前位置: 技术问答>linux和unix
memcpy的效率怎么这么低啊
来源: 互联网 发布时间:2016-07-07
本文导语: 我现在做一个系统,在linux多核平台下,修改了我那个卡驱动,用户空间直接访问驱动缓存。 在用户空间起了两个进程,一个进程负责从驱动中读数据包,并将此数据包memcpy给另一个进程, 两个进程间采用共享内存...
我现在做一个系统,在linux多核平台下,修改了我那个卡驱动,用户空间直接访问驱动缓存。
在用户空间起了两个进程,一个进程负责从驱动中读数据包,并将此数据包memcpy给另一个进程,
两个进程间采用共享内存通信方式,在发包速率500M,1518Byte的情况下最快只能拷240Mbit,去掉拷贝函数,可以
全部接受,共享内存大小为1024*1024*16Byte。采用并发无锁的方式进行同步与互斥。
现在奇怪的是拷贝的速度怎么这么慢,即使将memcpy改用内联汇编实现也是同样的结果?有高人指教下吗!
在用户空间起了两个进程,一个进程负责从驱动中读数据包,并将此数据包memcpy给另一个进程,
两个进程间采用共享内存通信方式,在发包速率500M,1518Byte的情况下最快只能拷240Mbit,去掉拷贝函数,可以
全部接受,共享内存大小为1024*1024*16Byte。采用并发无锁的方式进行同步与互斥。
现在奇怪的是拷贝的速度怎么这么慢,即使将memcpy改用内联汇编实现也是同样的结果?有高人指教下吗!
|
可不可以看到源代码里面哪一句最耗时间?
|
掉拷贝函数,可以
全部接受
什么意思?
全部接受
什么意思?