Skip to content

Repository files navigation

vmem-playground

At this repo, I want to test and examine some low-level features about virtual memory in Posix systems.

Build & run

# 1. generate table.bin
clang -std=c11 -Wall -Wextra -o generate generate.c
./generate

# 2. build benchmarks
clang -std=c11 -Wall -Wextra -DTEST_BUFFERED -o buffered_test buffered.c bench.c metrics.c histogram.c stressor.c -lpthread
clang -std=c11 -Wall -Wextra -DTEST_DIRECT   -o direct_test   direct.c   bench.c metrics.c histogram.c stressor.c -lpthread
clang -std=c11 -Wall -Wextra -DTEST_URING    -o uring_test    uring.c    bench.c metrics.c histogram.c -lpthread -luring

# 3. drop page cache before each run (precise results)
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"

# 4. run
./buffered_test
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
./direct_test
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
./uring_test

# 5. run with perf (L3 cache counters)
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
perf stat -e LLC-loads,LLC-load-misses,cache-misses,cache-references ./buffered_test
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
perf stat -e LLC-loads,LLC-load-misses,cache-misses,cache-references ./direct_test
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
perf stat -e LLC-loads,LLC-load-misses,cache-misses,cache-references ./uring_test

About

At this repo, I want to test and examine some low-level features about virtual memory in Posix systems.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages