Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
647cb45
make: replace build-bench-env.sh with a Make-based build
derSteFfi Oct 21, 2026
f8ebecb
Dockerfile/CI: support the make-based build
derSteFfi Oct 21, 2026
c5e2fd4
README: document the make-based workflow
derSteFfi Oct 21, 2026
910b4ad
VERSIONS: pin every project to an exact commit
derSteFfi Oct 21, 2026
51c6c5a
make: name archives after their pinned version
derSteFfi Oct 21, 2026
144f146
provision mathlib for the lean-mathlib benchmark
derSteFfi Oct 22, 2026
494f717
README/Dockerfile: add linux test build deps (flex, bison, libelf)
derSteFfi Oct 22, 2026
c8c73ee
make: never leave partial downloads behind
derSteFfi Oct 23, 2026
682b731
Dockerfile: use new bazel pubky location
derSteFfi Oct 26, 2026
276b19c
VERSIONS: match upstream mimalloc3 bump to v3.6.0
derSteFfi Nov 2, 2026
2a7bfcc
VERSIONS: match upstream jemalloc bump to 5.4.0
derSteFfi Nov 5, 2026
9bb9ab3
VERSIONS: match upstream snmalloc bump to 0.7.6
derSteFfi Nov 5, 2026
b62ec5b
VERSIONS: match upstream tbb bump to v2023.1.0
derSteFfi Nov 5, 2026
d00035f
VERSIONS: match upstream gperftools bump to gperftools-2.18
derSteFfi Nov 5, 2026
c507f00
VERSIONS: match upstream rpmalloc bump to 2.0.1
derSteFfi Nov 5, 2026
a286d51
VERSIONS: match upstream tcmalloc bump to 81f4e44f
derSteFfi Nov 5, 2026
988750c
README/Dockerfile: add ruby to the alpine and arch package lists for …
derSteFfi Nov 5, 2026
895a7d7
rocksdb: use posix_memalign for cache shards on musl
derSteFfi Nov 5, 2026
7894df9
Makefile: build a shared tcmalloc for the tcg test
derSteFfi Nov 9, 2026
423cde3
platform.yml: raise vm.max_map_count for the stress tests
derSteFfi Nov 9, 2026
909443a
Makefile: define the sized free functions for hoard
derSteFfi Nov 9, 2026
6f1ed81
platform.yml: run the tcg job on ubuntu
derSteFfi Nov 9, 2026
b7566d4
rocksdb: build db_bench portable
derSteFfi Nov 12, 2026
f718480
bench.sh: say why a test failed
derSteFfi Nov 12, 2026
1d66a12
Merge upstream master into build_with_makefile
derSteFfi Nov 12, 2026
7b6db7f
Merge rocksdb_portable into build_with_makefile
derSteFfi Nov 12, 2026
ab353a6
Makefile: build rocksdb portable
derSteFfi Nov 12, 2026
c4e6722
Merge bench_fail_details into build_with_makefile
derSteFfi Nov 12, 2026
801c4bf
build-bench-env.sh: fix guarder's thread function lookup
derSteFfi Nov 12, 2026
3620773
Merge guarder_pthread_stub into build_with_makefile
derSteFfi Nov 12, 2026
82ed365
Makefile: patch guarder's thread function lookup
derSteFfi Nov 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .github/workflows/platform.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,9 +70,10 @@ jobs:
# sm: ../src/supermalloc.h:10:31: error: expected initializer before '__THROW'
- allocator: sm
predicate: ${{ inputs.platform == 'alpine' }}
# tcg: [...] specifies less restrictive attribute than its target [...]
# tcg: needs bazel, which is only installed for ubuntu; on alpine
# tcmalloc also fails to compile with clang
- allocator: tcg
predicate: ${{ inputs.platform == 'alpine' }}
predicate: ${{ inputs.platform != 'ubuntu' }}
fail-fast: false
name: ${{ matrix.allocator }} - build and benchmark
steps:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
archives/
extern/
out/
bench/doc/
Expand Down
52 changes: 35 additions & 17 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,14 +1,38 @@
ARG platform=ubuntu

FROM ubuntu:24.04 AS ubuntu

RUN apt-get update
RUN apt-get install -y --no-install-recommends build-essential git gpg \
g++ clang lld llvm-dev unzip dos2unix linuxinfo bc libgmp-dev wget \
cmake python3 ruby ninja-build libtool autoconf sed ghostscript \
time curl automake libatomic1 libgflags-dev libsnappy-dev cargo \
zlib1g-dev libbz2-dev liblz4-dev libzstd-dev libreadline-dev \
pkg-config gawk util-linux bsdextrautils flex bison libelf-dev
# Install bazel
RUN apt-get install -y --no-install-recommends apt-transport-https curl gnupg
RUN curl -fsSL https://releases.bazel.build/bazel-release.pub.gpg | gpg --dearmor > bazel.gpg
RUN mv bazel.gpg /etc/apt/trusted.gpg.d/bazel.gpg
RUN echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" > /etc/apt/sources.list.d/bazel.list
RUN apt-get update && apt-get install bazel

FROM fedora:44 AS fedora

RUN dnf -y --quiet --nodocs install gcc-c++ clang lld llvm-devel unzip \
dos2unix bc gmp-devel wget gawk cmake python3 ruby ninja-build libtool \
autoconf git patch time sed ghostscript libatomic libstdc++ which \
gflags-devel xz readline-devel snappy-devel rust flex bison elfutils-libelf-devel
# Install bazel - off for now, only tcg needs it and that's not building anyway
#RUN dnf -y --quiet copr enable ohadm/bazel
#RUN dnf -y --quiet --nodocs install bazel8

FROM alpine:3.24 AS alpine
RUN echo "@testing http://nl.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
RUN apk update
RUN apk add --no-cache bash

RUN apk add -q clang lld unzip dos2unix bc gmp-dev wget cmake python3 ruby \
automake gawk samurai libtool git build-base linux-headers autoconf \
util-linux sed ghostscript libatomic gflags-dev readline-dev snappy-dev cargo \
flex bison elfutils-dev
RUN apk add -q bazel@testing

FROM ${platform} AS bench-env

Expand All @@ -17,19 +41,13 @@ RUN mkdir -p /mimalloc-bench
COPY . /mimalloc-bench

WORKDIR /mimalloc-bench
# Install dependencies
RUN ./build-bench-env.sh packages

# Build benchmarks
RUN ./build-bench-env.sh bench

RUN ./build-bench-env.sh redis

RUN ./build-bench-env.sh rocksdb

RUN ./build-bench-env.sh lean

RUN ./build-bench-env.sh linux
RUN make benchmarks
RUN make redis
RUN make rocksdb
RUN make lean
RUN make lua
RUN make linux
Comment thread
derSteFfi marked this conversation as resolved.
Resolved

FROM bench-env AS benchmark

Expand All @@ -39,8 +57,8 @@ ARG allocator=mi
ARG benchs=cfrac
ARG repeats=1

RUN ./build-bench-env.sh $allocator
RUN make $allocator

# Run benchmarks
WORKDIR /mimalloc-bench/out/bench
RUN ../../bench.sh $allocator $benchs -r=$repeats
RUN ../../bench.sh $allocator $benchs -r=$repeats
Loading
Loading