Popularity
7.1
Stable
Activity
0.0
Stable
172
1
11
Monthly Downloads: 43,472
Programming language: Elixir
License: MIT License
Tags:
Code Analysis
Latest version: v0.2.4
exprof alternatives and similar packages
Based on the "Code Analysis" category.
Alternatively, view exprof alternatives based on common mentions on social networks and blogs.
-
credo
A static code analysis tool for the Elixir language with a focus on code consistency and teaching. -
dotenv-linter
⚡️Lightning-fast linter for .env files. Written in Rust 🦀 -
excoveralls
Coverage report tool for Elixir with coveralls.io integration. -
ex_check
One task to efficiently run all code analysis & testing tools in an Elixir project. Born out of 💜 to Elixir and pragmatism. -
DepViz
A visual tool to help developers understand Elixir recompilation in their projects -
excellent_migrations
An Elixir tool for checking safety of database migrations. -
int_set
A time- and memory-efficient data structure for positive integers.
Clean code begins in your IDE with SonarLint
Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.
Promo
www.sonarlint.org
Do you think we are missing an alternative of exprof or a related project?
Popular Comparisons
README
ExProf

A simple code profiler for Elixir using eprof.
It provides a simple macro as a wrapper for Erlang's :eprof profiler.
Install
Add :exprof
to deps
section of mix.exs
.
def deps do
[ {:exprof, "~> 0.2.0"} ]
end
Usage
import "ExProf.Macro", then use "profile" macro to start profiling. It prints out results, and returns them as list of records, along with the result of the profiled block.
defmodule SampleRunner do
import ExProf.Macro
@doc "analyze with profile macro"
def do_analyze do
profile do
:timer.sleep 2000
IO.puts "message\n"
end
end
@doc "get analysis records and sum them up"
def run do
{records, _block_result} = do_analyze
total_percent = Enum.reduce(records, 0.0, &(&1.percent + &2))
IO.inspect "total = #{total_percent}"
end
end
Run
An example to use in iex console.
$ iex -S mix
..
iex(1)> SampleRunner.run
message
FUNCTION CALLS % TIME [uS / CALLS]
-------- ----- --- ---- [----------]
'Elixir.IO':puts/2 1 0.86 1 [ 1.00]
io:o_request/3 1 1.72 2 [ 2.00]
io:put_chars/2 1 1.72 2 [ 2.00]
erlang:group_leader/0 1 1.72 2 [ 2.00]
io:request/2 1 2.59 3 [ 3.00]
io:execute_request/2 1 2.59 3 [ 3.00]
'Elixir.SampleRunner':'-run/0-fun-0-'/0 1 2.59 3 [ 3.00]
'Elixir.IO':map_dev/1 1 3.45 4 [ 4.00]
erlang:demonitor/2 1 4.31 5 [ 5.00]
io:io_request/2 1 6.03 7 [ 7.00]
io:wait_io_mon_reply/2 1 6.90 8 [ 8.00]
'Elixir.IO':puts/1 1 8.62 10 [ 10.00]
unicode:characters_to_binary/2 1 11.21 13 [ 13.00]
timer:sleep/1 1 14.66 17 [ 17.00]
erlang:monitor/2 1 31.03 36 [ 36.00]
"total = 100.0"
Add a Mix Task
An example to use as mix tasks.
defmodule Mix.Tasks.Exprof do
@shortdoc "Profile using ExProf"
use Mix.Task
import ExProf.Macro
def run(_mix_args) do
profile do: do_work(2)
end
defp do_work(n) do
:timer.sleep(n * 1000)
end
end