Binder跨进程通信原理(二):内存映射mmap原理分析

33 阅读2分钟

printf("Reading data failed.../n");

return-1;

}

for( i=0; i

++array[ i ];

if(sizeof(int)MAX != write( fd, (void)array,sizeof(int)*MAX ) )

{

printf("Writing data failed.../n");

return-1;

}

free(array);

close( fd );

gettimeofday( &tv2,NULL);

printf("Time of read/write: %dms/n", tv2.tv_usec-tv1.tv_usec );

/mmap/

gettimeofday( &tv1,NULL);

fd = open("mmap_test", O_RDWR );

array= mmap(NULL,sizeof(int)*MAX, PROT_READ|PROT_WRITE, MAP_SHARED, fd,0);

for( i=0; i

++array[ i ];

munmap(array,sizeof(int)*MAX );

msync(array,sizeof(int)*MAX, MS_SYNC );

free(array);

close( fd );

gettimeofday( &tv2,NULL);

printf("Time of mmap: %dms/n", tv2.tv_usec-tv1.tv_usec );

return0;

}

输出结果:

Timeofread/write:154ms

Timeofmmap:68ms

文末


欢迎关注我的CSDN,分享Android干货,交流Android技术。

对文章有何见解,或者有何技术问题,都可以在评论区一起留言讨论,我会虔诚为你解答。

最后,如果你想知道更多Android的知识或需要其他资料我这里均免费分享,只需你多多支持我即可哦!

——可以直接点这里可以看到全部资料内容免费打包领取。

在这里插入图片描述

[

资源分享

一线互联网面试专题

379页的Android进阶知识大全

379页的Android进阶知识大全

点击:

**《Android架构视频+BAT面试专题PDF+学习笔记​》**即可免费获取

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

2020年虽然路途坎坷,都在说Android要没落,但是,不要慌,做自己的计划,学自己的习,竞争无处不在,每个行业都是如此。相信自己,没有做不到的,只有想不到的。祝大家2021年万事大吉。