Issue #14767 has been updated by ko1 (Koichi Sasada).


Honestly speaking, I forget the discussions :p

The only one problem is, if we have a bug (and it can be. because nobody test malloc/free counts), the values grow into strange values.
Now we reset them at GC time.

What do you think about it?


----------------------------------------
Feature #14767: [PATCH] gc.c: use monotonic counters for objspace_malloc_increase
https://bugs.ruby-lang.org/issues/14767#change-72060

* 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>