需求:
1 测试单路图片,在带锁的情况下,进程间进行共享内存的时间延迟和性能
2 测试8路 图片,在带锁的情况下,进程间进行共享内存数据传输的时间延迟和性能
测试设备: RK3399
一 单路测试:
代码编写:
使用了二元信号量进行加锁控制,并模拟一秒中写入2次图片,读取端2秒钟读取一张图片
结果:时间上几乎无延时,CPU可以忽略不计
压力测试:(单路)
发送端 接收端 CPU占用
500ms/张 500ms/张 send :%1 read :%1
250ms/张 250ms/张 send :%1.6 read :%1.6
100ms/张 100ms/张 send :%5 read :%5
50ms/张 50ms/张 send :%8 read :%8
25ms/张 25ms/张 send :%14 read :%14
一 多路测试:
多路测试在单路测试的基础上进行多进程调用,将原来的1进程更改成8进程:
代码更改:
测试结果:时间上几乎无延时
压力测试:(8路)
发送端 接收端 CPU占用
500ms/张 500ms/张 send :%8 read :%8
250ms/张 250ms/张 send :%13 read :%13
100ms/张 100ms/张 send :%35 read :%35
50ms/张 50ms/张 send :%60 read :%55
25ms/张 25ms/张 send :%90 read :%90
其他:
编译命令:
send端:
g++ -o send send.cpp Utils.cpp Lock.cpp HyThread.cpp MemorySend.cpp -I./include/ -lpthread -fpermissive
read端:
g++ -o read read.cpp Lock.cpp HyThread.cpp MemoryRead.cpp -I./include/ -lpthread -fpermissive
源码:
git clone http://192.168.6.205:8079/yushuo/memroyshare_rk3588.git
直接在rk3399上编译即可使用
网友评论