diff --git a/.github/workflows/platform.yml b/.github/workflows/platform.yml index 4463bec..b4489ba 100644 --- a/.github/workflows/platform.yml +++ b/.github/workflows/platform.yml @@ -37,7 +37,7 @@ jobs: needs: build-base-with-docker strategy: matrix: - allocator: [ff, fg, gd, hd, hm, iso, je, lf, lp, lt, mesh, mng, mi, mi2, nomesh, pa, rp, scudo, sm, sn, sg, tbb, tc, yal, tcg] + allocator: [ff, fg, gd, hd, hm, iso, je, lf, lp, lt, mesh, mng, mi, mi2, nomesh, pa, rp, scudo, s, sm, sn, sg, tbb, tc, yal, tcg] testsuite: [allt] # Used to provide a platform-specific predicate predicate: [true, false] @@ -97,4 +97,4 @@ jobs: allocator=${{ matrix.allocator }} benchs=${{ (contains('lt,lf,gd', matrix.allocator) && 'cfrac espresso barnes larson-sized mstress rptest gs lua') || ('fg' == matrix.allocator && 'cfrac espresso barnes gs lua') || 'allt' }} repeats=1 - cache-from: type=gha,scope=buildkit_${{ inputs.platform }} \ No newline at end of file + cache-from: type=gha,scope=buildkit_${{ inputs.platform }} diff --git a/bench.sh b/bench.sh index c03fe2d..ea2c07e 100755 --- a/bench.sh +++ b/bench.sh @@ -6,7 +6,7 @@ # Allocators and tests # -------------------------------------------------------------------- -readonly alloc_all="sys dh ff fg gd hd hm hml iso je lf lp lt mi mi-sec mi2 mi2-sec mng mesh nomesh pa rp sc scudo sg sm sn sn-sec tbb tc tcg mi-dbg mi2-dbg xmi xsmi xmi-dbg yal" +readonly alloc_all="sys dh ff fg gd hd hm hml iso je lf lp lt mi mi-sec mi2 mi2-sec mng mesh nomesh pa rp sc scudo sg sm sn sn-sec s tbb tc tcg mi-dbg mi2-dbg xmi xsmi xmi-dbg yal" readonly alloc_secure="dh ff gd hm hml iso mi-sec mi2-sec mng pa scudo sg sn-sec sg" alloc_run="" # allocators to run (expanded by command line options) alloc_installed="sys" # later expanded to include all installed allocators @@ -120,6 +120,7 @@ alloc_lib_add "scudo" "$localdevdir/scudo/compiler-rt/lib/scudo/standalone/libs alloc_lib_add "sg" "$localdevdir/sg/libSlimGuard.so" alloc_lib_add "sm" "$localdevdir/sm/release/lib/libsupermalloc$extso" alloc_lib_add "sn" "$localdevdir/sn/release/libsnmallocshim$extso" +alloc_lib_add "s" "$localdevdir/s/target/release/libsmalloc_ffi$extso" alloc_lib_add "sn-sec" "$localdevdir/sn/release/libsnmallocshim-checks$extso" alloc_lib_add "tbb" "$lib_tbb" alloc_lib_add "tc" "$localdevdir/tc/.libs/libtcmalloc_minimal$extso" @@ -413,6 +414,7 @@ while : ; do echo " sm use supermalloc" echo " sn use snmalloc" echo " sn-sec use secure version of snmalloc" + echo " s use smalloc" echo " sys use system malloc ($libc)" echo " tbb use Intel TBB malloc" echo " tc use tcmalloc (from gperftools)" diff --git a/build-bench-env.sh b/build-bench-env.sh index 3223dc7..bfb66e3 100755 --- a/build-bench-env.sh +++ b/build-bench-env.sh @@ -60,6 +60,7 @@ readonly version_scudo=main readonly version_sg=master # ~unmaintained since 2021 readonly version_sm=master # ~unmaintained since 2017 readonly version_sn=0.7.3 +readonly version_s=v7.6.0 readonly version_tbb=v2021.9.0 readonly version_tc=gperftools-2.18 readonly version_tcg=98fd24303c7b5ef5e30da625f11fb623a5e038b6 # 2025-07-18 @@ -100,6 +101,7 @@ setup_scudo=0 setup_sg=0 setup_sm=0 setup_sn=0 +setup_s=0 setup_tbb=0 setup_tc=0 setup_tcg=0 @@ -143,6 +145,7 @@ while : ; do setup_mi2=$flag_arg setup_pa=$flag_arg setup_sn=$flag_arg + setup_s=$flag_arg setup_sg=$flag_arg setup_tbb=$flag_arg setup_tc=$flag_arg @@ -232,6 +235,8 @@ while : ; do setup_sm=$flag_arg;; sn) setup_sn=$flag_arg;; + s) + setup_s=$flag_arg;; tbb) setup_tbb=$flag_arg;; tc) @@ -276,6 +281,7 @@ while : ; do echo " sg setup slimguard ($version_sg)" echo " sm setup supermalloc ($version_sm)" echo " sn setup snmalloc ($version_sn)" + echo " s setup smalloc ($version_s)" echo " tbb setup Intel TBB malloc ($version_tbb)" echo " tc setup tcmalloc ($version_tc)" echo " tcg setup Google's tcmalloc ($version_tcg)" @@ -665,6 +671,12 @@ if test "$setup_sn" = "1"; then popd fi +if test "$setup_s" = "1"; then + checkout s $version_s https://github.com/zooko/smalloc + cargo build --release --package smalloc-ffi + popd +fi + if test "$setup_sm" = "1"; then checkout sm $version_sm https://github.com/kuszmaul/SuperMalloc rm -rf ./doc ./paper "./short-talk"