Introduction
memadvise is a Rust crate that can provide the operating system with hints about memory access patterns. For example, if the user calls memadvise::advise() with Advice::Sequential, the kernel may start bringing memory pages into RAM (if they were on disk) starting at the beginning of the block of memory passed.
Example
extern crate memadvise;
extern crate page_size;
Advice
memadvise features five different 'hints' used to tell the system how a program will use a certain range of memory.
-
Normal- no special usage -
Random- will use range but in no particular order; OS should not read ahead much -
WillNeed- will use range; OS should read ahead more thanRandom -
Sequential- will use range in order; OS should read ahead more thanWillNeed -
DontNeed- will not use range right now; OS can swap it to disk
Platforms
memadvise should Work on Windows and any POSIX compatible system (Linux, Mac OSX, etc.).
memadvise is continuously tested on:
x86_64-unknown-linux-gnu(Linux)i686-unknown-linux-gnux86_64-unknown-linux-musl(Linux w/ MUSL)i686-unknown-linux-muslx86_64-apple-darwin(Mac OSX)i686-apple-darwinx86_64-pc-windows-msvc(Windows)i686-pc-windows-msvcx86_64-pc-windows-gnui686-pc-windows-gnu
memadvise is continuously cross-compiled for:
arm-unknown-linux-gnueabihfaarch64-unknown-linux-gnumips-unknown-linux-gnuaarch64-unknown-linux-musli686-linux-androidx86_64-linux-androidarm-linux-androideabiaarch64-linux-androidi386-apple-iosx86_64-apple-iosi686-unknown-freebsdx86_64-unknown-freebsdx86_64-unknown-netbsdasmjs-unknown-emscripten