Issue #14767 has been updated by ko1 (Koichi Sasada). sorry I missed the following line. > ssize_t inc = monoctr_xchg0(&objspace->malloc_params.m); So no problem. On last comment, I thought these counters are not reset forever. (because I searched only `= 0` lines) ---------------------------------------- Feature #14767: [PATCH] gc.c: use monotonic counters for objspace_malloc_increase https://bugs.ruby-lang.org/issues/14767#change-72062 * Author: normalperson (Eric Wong) * Status: Open * Priority: Normal * Assignee: ko1 (Koichi Sasada) * Target version: ---------------------------------------- gc.c: use monotonic counters for objspace_malloc_increase atomic_sub_nounderflow is expensive and objspace_malloc_increase was showing up near the top of some `perf` profiles. The new implementation allows the compiler to inline and eliminate some branches from objspace_malloc_increase. This consistently improves bm_so_count_words benchmark by around 10% on my hardware. name built so_count_words 1.107 We started this discussion back in [ruby-core:61508] https://public-inbox.org/ruby-core/5323FE11.3000908 / atdot.net/ I may revisit non-atomic counters another day, but I think this patch is good for now since I haven't found a downside (running full benchmarks, will take a while) ---Files-------------------------------- 0001-gc.c-use-monotonic-counters-for-objspace_malloc_incr.patch (8.25 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>