diff options
author | Lukas Larsson <lukas@erlang-solutions.com> | 2014-09-12 16:38:00 +0200 |
---|---|---|
committer | Lukas Larsson <lukas@erlang.org> | 2016-02-02 10:45:21 +0100 |
commit | 664ed2a6fd2b324bb6b56db3d3eca853cfda8f61 (patch) | |
tree | 286743a4b1f794948329961e7f5879b5f54f54a5 /erts/emulator/beam/global.h | |
parent | eea5f896780e07f7ca76685061d01e7be5a7abaa (diff) | |
download | otp-664ed2a6fd2b324bb6b56db3d3eca853cfda8f61.tar.gz otp-664ed2a6fd2b324bb6b56db3d3eca853cfda8f61.tar.bz2 otp-664ed2a6fd2b324bb6b56db3d3eca853cfda8f61.zip |
erts: Add microstate accounting
Microstate accounting is a way to track which state the
different threads within ERTS are in. The main usage area
is to pin point performance bottlenecks by checking which
states the threads are in and then from there figuring out
why and where to optimize.
Since checking whether microstate accounting is on or off is
relatively expensive if done in a short loop only a few of the
states are enabled by default and more states can be enabled
through configure.
I've done some benchmarking and the overhead with it turned off
is not noticible and with it on it is a fraction of a percent.
If you enable the extra states, depending on the benchmark,
the ovehead when turned off is about 1% and when turned on
somewhere inbetween 5-15%.
OTP-12345
Diffstat (limited to 'erts/emulator/beam/global.h')
-rw-r--r-- | erts/emulator/beam/global.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/erts/emulator/beam/global.h b/erts/emulator/beam/global.h index 3f5925765d..e8a7573e86 100644 --- a/erts/emulator/beam/global.h +++ b/erts/emulator/beam/global.h @@ -1448,6 +1448,8 @@ ERTS_GLB_FORCE_INLINE int erts_is_literal(Eterm tptr, Eterm *ptr) #endif +Eterm erts_msacc_request(Process *c_p, int action, Eterm *threads); + /* ** Call_trace uses this API for the parameter matching functions */ |