ChinaUnix.net
相关文章推荐:

madvise

本人做流媒体开发的,工作中需要将mpg文件转化成一定格式发送到网络,由于文件太大,程序用mmap()来实现文件的读取,但在实测过程中发现一个大问题,如下: 服务器配置: CPU:两颗至强3.0 内存:2G 磁盘:3个SATA硬盘组成磁盘阵列 测试时同时运行30个播放程序读取30个不同的mpg文件,程序起初运行画面播放非常流畅,几分钟过后,内存剩下15MB左右时,mmap()就开始不停 的进行页面置换,将新的数据读入内存,老的数据...

by almeydifer - Linux文档专区 - 2009-10-31 14:27:48 阅读(1124) 回复(0)

相关讨论

本帖最后由 learn007 于 2013-01-02 15:36 编辑 [code]#define MEM_SIZE (64*1024) int main(int argc, char **argv) { char *p = malloc(MEM_SIZE); int ps = getpagesize(); printf("pagesize=%d\n", ps); if (!p) { perror("oom"); return -1; } if (madvise(p, MEM_SIZE, MADV_MERGEABLE) != 0) { perror("madvise"); return -1; } //advise_merge(); memset(p, 0, 64*1024); while (1) sleep(...

by learn007 - 内核源码 - 2013-01-06 08:22:32 阅读(1670) 回复(4)

请问madvise这个函数是干什么的,如何使用?

by wbchu - Linux环境编程 - 2007-10-15 19:00:52 阅读(5029) 回复(2)