Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate measurement of reductions #156

Open
PragTob opened this issue Oct 22, 2017 · 1 comment

Comments

@PragTob
Copy link
Member

commented Oct 22, 2017

@ijcd (I hope that's the one) stopped by in the #benchee channel and during the course of the conversation I learned about "reductions" - which are basically the BEAM's unit of execution (apparently function calls).

For non I/O bound or heavy NIF using benchmarks reductions could be utilized to measure more or less how complex a given function is and as such could even be used in test/CI environment to catch performance degradations as reductions shouldn't (in theory) change under load and therefore might be more reliable in notoriously busy systems.

Before we get there, there's still a lot of other stuff to do and some to research.

Here are some great pointers also for learning about BEAM internals in general (provided by @ijcd in slack):

You can see the total number of reductions for a process (the reds field) by calling erlang:process_info/2 with the atom reductions as the second argument. You can also see this number in the process tab in the observer or with the i/0 command in the Erlang shell.

@devonestes

This comment has been minimized.

Copy link
Collaborator

commented Oct 23, 2017

Oh man, this looks really cool!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.