I hereby claim:
- I am josevalim on github.
- I am josevalim (https://keybase.io/josevalim) on keybase.
- I have a public key whose fingerprint is E140 099F 114F 4B2A 21FE 2E69 E337 0FF7 D467 E599
To claim this, I am signing this object:
small_int_list = Enum.to_list(1..10) | |
medium_int_list = Enum.to_list(1..1000) | |
large_int_list = Enum.to_list(1..100_000) | |
small_other_int_list = Enum.to_list(11..20) | |
medium_other_int_list = Enum.to_list(1001..2000) | |
large_other_int_list = Enum.to_list(100_001..200_000) | |
small_bin_list = Enum.map(1..10, fn _ -> :crypto.strong_rand_bytes(10) end) | |
medium_bin_list = Enum.map(1..1000, fn _ -> :crypto.strong_rand_bytes(10) end) |
I hereby claim:
To claim this, I am signing this object:
# You will need fswatch installed (available in homebrew and friends) | |
# The command below will run tests and wait until fswatch writes something. | |
# The --stale flag will only run stale entries, it requires Elixir v1.3. | |
fswatch lib/ test/ | mix test --stale --listen-on-stdin |
$ git clone [email protected]:elixircnx/comeonin.git
$ cd comeonin/
$ git checkout develop
$ mix deps.get
$ mix test
$ mix app.tree | |
demo | |
├── elixir | |
├── phoenix | |
│ ├── elixir | |
│ ├── plug | |
│ │ ├── elixir | |
│ │ ├── crypto | |
│ │ └── logger | |
│ │ └── elixir |
I've taken the benchmarks from Matthew Rothenberg's phoenix-showdown, updated Phoenix to 0.13.1 and ran the tests on the most powerful machines available at Rackspace.
Framework | Throughput (req/s) | Latency (ms) | Consistency (σ ms) |
---|
defmodule SomeModule do | |
def start(host, options) do | |
# We are assuming SomeSup has been already started somewhere | |
# (ideally in a supervision tree). | |
{:ok, child_pid} = SomeSup.attach_to(SomeSup, host, options) | |
end | |
end | |
defmodule SomeSup do | |
use Supervisor |
%% When compiled with: erlc +bin_opt_info foo.erl | |
%% | |
%% It prints: | |
%% | |
%% foo.erl:13: Warning: NOT OPTIMIZED: compiler limitation: instruction {get_map_elements, | |
%% {f,3}, | |
%% {x,1}, | |
%% {list,[{atom,state},{x,6}]}} prevents delayed sub binary optimization | |
-module(foo). |
Nonterminals | |
grammar expr_list | |
expr container_expr block_expr access_expr | |
no_parens_expr no_parens_one_expr no_parens_one_ambig_expr | |
bracket_expr bracket_at_expr bracket_arg matched_expr unmatched_expr max_expr | |
op_expr matched_op_expr no_parens_op_expr no_parens_many_expr | |
comp_op_eol at_op_eol unary_op_eol and_op_eol or_op_eol capture_op_eol | |
add_op_eol mult_op_eol hat_op_eol two_op_eol pipe_op_eol stab_op_eol | |
arrow_op_eol match_op_eol when_op_eol in_op_eol in_match_op_eol | |
type_op_eol rel_op_eol |