# Beamchmark v1.4.2 - Table of Contents Tool for measuring EVM performance ## Pages - [Beamchmark](readme.md) - [LICENSE](license.md) ## Modules - [Beamchmark](Beamchmark.md): Top level module providing `Beamchmark.run/2` and `Beamchmark.run_attached/2` API. - [Beamchmark.Formatter](Beamchmark.Formatter.md): The module defines a behaviour that will be used to format and output `Beamchmark.Suite`. You can adopt this behaviour to implement custom formatters. - [Beamchmark.Math](Beamchmark.Math.md): The module contains helper math types and utility functions. - [Beamchmark.Scenario](Beamchmark.Scenario.md): Scenario to run during benchmarking. Defines a behaviour that needs to be adopted by benchmarked modules. - [Beamchmark.Suite](Beamchmark.Suite.md): The module defines a struct representing a single run of benchmark. It is also responsible for running the benchmark and saving/loading the results. - [Beamchmark.Utils](Beamchmark.Utils.md): The module defines utility functions for Beamchmark. - [Beamchmark.Formatters.Console](Beamchmark.Formatters.Console.md): The module formats `Beamchmark.Suite` and outputs it using `Mix.shell/0`. - [Beamchmark.Formatters.HTML](Beamchmark.Formatters.HTML.md): The module formats `Beamchmark.Suite` and outputs it to an HTML file. - [Beamchmark.Formatters.Utils](Beamchmark.Formatters.Utils.md): The module provides functions common for multiple formatters. - [Beamchmark.Suite.CPU.CpuTask](Beamchmark.Suite.CPU.CpuTask.md): This module contains the CPU benchmarking task. Measurements are performed using [`:cpu_sup.util/1`](https://www.erlang.org/doc/man/cpu_sup.html) Currently (according to docs), as busy processor states we identify: - user - nice_user (low priority use mode) - kernel - [Beamchmark.Suite.Configuration](Beamchmark.Suite.Configuration.md): The module defines a structure used to configure `Beamchmark.Suite`. For more information about customizing Beamchmark, refer to `t:Beamchmark.options_t/0`. - [Beamchmark.Suite.Measurements](Beamchmark.Suite.Measurements.md): The module is responsible for gathering BEAM statistics during benchmarking. - [Beamchmark.Suite.Measurements.CpuInfo](Beamchmark.Suite.Measurements.CpuInfo.md): Module representing statistics about cpu usage. - [Beamchmark.Suite.Measurements.MemoryInfo](Beamchmark.Suite.Measurements.MemoryInfo.md): Module representing statistics about memory usage. - [Beamchmark.Suite.Measurements.SchedulerInfo](Beamchmark.Suite.Measurements.SchedulerInfo.md): Module representing different statistics about scheduler usage. - [Beamchmark.Suite.Memory.MemoryTask](Beamchmark.Suite.Memory.MemoryTask.md): This module contains the memory benchmarking task. Measurements are performed using [`:erlang.memory/0`](https://www.erlang.org/doc/man/erlang.html#memory-0) - [Beamchmark.Suite.SystemInfo](Beamchmark.Suite.SystemInfo.md): The module defines a struct containing various information about system that is used for benchmarking.