madvise、fadvise、posix_madvise和posix_fadvise函数的使用
系统调用madvise的作用:建议内核如何使用指定段的内存。函数原型如下:
|
#include <sys/mman.h> int madvise(void *addr, size_t length, int advice); |
参数advice的取值有如下几种:
|
MADV_NORMAL |
|
|
MADV_RANDOM |
|
|
MADV_SEQUENTIAL |
|
|
MADV_WILLNEED |
|
|
MADV_DONTNEED |
|
|
MADV_REMOVE |
2.6.16内核引入。 |
|
MADV_DONTFORK |
2.6.16内核引入。 |
|
MADV_DOFORK |
2.6.16内核引入。 |
|
MADV_HWPOISON |
2.6.32内核引入。 |
|
MADV_UNMERGEABLE |
2.6.32内核引入。 |
|
MADV_MERGEABLE |
2.6.32内核引入。 |
|
MADV_SOFT_OFFLINE |
2.6.33内核引入。 |
|
MADV_HUGEPAGE |
2.6.38内核引入。 |
|
MADV_NOHUGEPAGE |
2.6.38内核引入。 |
|
MADV_DONTDUMP |
3.4内核引入。 |
|
MADV_DODUMP |
3.4内核引入。 |
m表示memory,f表示file,因此madvise是针对内存,而fadvise是针对文件。
Posix也有个类似的函数posix_madvise和posix_fadvise:
|
#include <sys/mman.h> int posix_madvise(void *addr, size_t len, int advice); #include <fcntl.h> int posix_fadvise(int fd, off_t offset, size_t len, int advice); |
更多详情请浏览:http://man7.org/linux/man-pages/man2/madvise.2.html,或执行man madvise命令。
madvise、fadvise、posix_madvise和posix_fadvise函数的使用的更多相关文章
- qemu安装
1 下载qemu wget http://wiki.qemu-project.org/download/qemu-2.4.1.tar.bz2 2 解压qemu tar -jxvf qemu-2.4.1 ...
- Hadoop源码分析之读文件时NameNode和DataNode的处理过程
转自: http://blog.csdn.net/workformywork/article/details/21783861 从NameNode节点获取数据块所在节点等信息 客户端在和数据节点建立流 ...
- 【MIT6.828】centos7下使用Qemu搭建xv6运行环境
title:[MIT6.828]centos7下使用Qemu搭建xv6运行环境 date: "2020-05-05" [MIT6.828]centos7下搭建xv6运行环境 1. ...
- 内存映射 madvise mmap
http://linux.die.net/man/2/madvise mmap && madvise的配合使用 mmap和madvise一起使用例子 mmap的作用是将硬盘文件的内容映 ...
- linux中fork()函数
man fork: FORK() Linux Programmer's Manual FORK(2) NAME fork - create a child process SYNOPSIS #incl ...
- [转]mmap和madvise的使用
1. madvise的简介 madvise可以设置内存的分配方式或者说是分配的细节方式.具体参见linux man madvise. #include <sys/ty ...
- Python 小而美的函数
python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况 any any(iterable) ...
- 探究javascript对象和数组的异同,及函数变量缓存技巧
javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...
- JavaScript权威指南 - 函数
函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...
随机推荐
- mybatis-generator的坑
有天发现mybatis-generator不能用,要加什么根项目前缀, 搞到我重新从github下载,然后发现仓库用不了,原来新项目会改我的maven配置(新坑 后来终于明白要在子项目栏使用手脚架,就 ...
- laravel 中条件查询 function模式
当需要条件查找时,可以使用下面的注入方法: //我要预约 yudoc_name yudoc_keshi yudoc_jibing yudoc_hospital 这是需要帅选的条件 public fun ...
- nginx upstream配置
upstream *.com { server 127.0.0.1:5000 weight=10 max_fails=2 fail_timeout=30s;} server { listen 80; ...
- 简述FPGA时序约束理论
FPGA时序约束简介. 时序约束的场景: 在简单电路中,当频率较低时,数字信号的边沿时间可以忽略时,无需考虑时序约束.但在复杂电路中,为了减少系统中各部分延时,使系统协同工作,提高运行频率,需要进行时 ...
- java代码实现点击鼠标从控制台输出信息
总结:最难的就是当我们需要点击按钮时去实现某个功能-----------因为那个我没有理解透,是涉及整个程序的 package com.a.b; import javax.swing.*; impor ...
- 杂项-Java:JCP
ylbtech-杂项-Java:JCP JCP(Java Community Process) 是一个开放的国际组织,主要由Java开发者以及被授权者组成,职能是发展和更新. 1. 中文名:jcp 外 ...
- win7 网站发布备注
1.更改 .NET Framework 版本(改原设置v2.0 为v4.0) 2.程序池设置 3.基本设置 4.Web.config (debug="false") <sys ...
- Nginx启动提示找不到libpcre.so.1解决方法
如果是32位系统 [root@lee ~]# ln -s /usr/local/lib/libpcre.so.1 /lib 如果是64位系统 [root@lee ~]# ln -s /usr/lo ...
- java成神之——java中string的用法
java中String的用法 String基本用法 String分割 String拼接 String截取 String换行符和format格式化 String反转字符串和去除空白字符 String获取 ...
- selenium - 驱动 chromedriver 初始化问题总结
ChromeDriver切换浏览器语言 ChromeOptions options = new ChromeOptions(); options.addArguments("--lang=& ...