At this repo, I want to test and examine some low-level features about virtual memory in Posix systems.
# 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