Skip to content

Instantly share code, notes, and snippets.

@eraserewind
Last active March 8, 2017 11:40
Show Gist options
  • Save eraserewind/e398d66d95eadd5ac94e98835c05659a to your computer and use it in GitHub Desktop.
Save eraserewind/e398d66d95eadd5ac94e98835c05659a to your computer and use it in GitHub Desktop.
{topo,geos} vs. {hipe,beam} vs. {atom,xeon}

tl;dr

build   cpu    benchmark name                               iterations   average time
BEAM   Xeon   Topo.contains?(@north_america, @usa)                100   14693.69 µs/op 
HiPE   Xeon   Topo.contains?(@north_america, @usa)                100   11093.37 µs/op -3600.319
C      Xeon   GEOS.contains(@north_america, @usa)            10000000   0.19 µs/op     -14693.5

BEAM   Xeon   Topo.contains?(@north_america, @russia)             100   26424.66 µs/op
HiPE   Xeon   Topo.contains?(@north_america, @russia)             100   17096.10 µs/op  -9328.560
C      Xeon   GEOS.contains(@north_america, @russia)               10   136897.70 µs/op +110473.04

BEAM   Xeon   Topo.contains?(@russia, @usa)                        20   87269.85 µs/op
HiPE   Xeon   Topo.contains?(@russia, @usa)                        50   50777.66 µs/op  -36492.19
C      Xeon   GEOS.contains(@russia, @usa)                         50   38856.50 µs/op  -48413.350

On Atom:

build   cpu    benchmark name                               iterations   average time
BEAM   Atom   Topo.contains?(@north_america, @usa)                 50   37791.62 µs/op
HiPE   Atom   Topo.contains?(@north_america, @usa)                100   27585.35 µs/op -10206.270

BEAM   Atom   Topo.contains?(@north_america, @russia)              20   73533.40 µs/op
HiPE   Atom   Topo.contains?(@north_america, @russia)              50   42494.04 µs/op  -31039.359


BEAM   Atom   Topo.contains?(@russia, @usa)                         5   245850.60 µs/op
HiPE   Atom   Topo.contains?(@russia, @usa)                        10   128661.50 µs/op -117189.1

Scaleway C2M

  • Intel(R) Atom(TM) CPU C2750 @ 2.40GHz
  • 8 Cores
  • 32Gb RAM

Ubuntu Xenial

  • Erlang/OTP 19 [erts-8.2] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false]
  • Elixir 1.4.1

Topo, Without HiPE

benchmark name                               iterations   average time
Envelope.contains?(@north_america, @russia)    10000000   0.30 µs/op
Envelope.contains?(@north_america, @usa)       10000000   0.30 µs/op
Envelope.contains?(@russia, @usa)              10000000   0.42 µs/op
Topo.contains?(@north_america, @usa)                 50   37791.62 µs/op
Topo.contains?(@north_america, @russia)              20   73533.40 µs/op
Topo.contains?(@russia, @usa)                         5   245850.60 µs/op

Topo, With HiPE

rm -rf _build
export ERL_COMPILER_OPTIONS="[native,{hipe, [o3, verbose]}]"
mix compile

18h23 début de compilation. 18h54 ça compile toujours (Elixir.Timex.Gettext, depuis un looong moment), l'apéro commence. 19h24 gettext est fini, ça reprends, 19h40 fini!!

benchmark name                               iterations   average time
Envelope.contains?(@north_america, @russia)    10000000   0.30 µs/op
Envelope.contains?(@north_america, @usa)       10000000   0.30 µs/op
Envelope.contains?(@russia, @usa)              10000000   0.49 µs/op
Topo.contains?(@north_america, @usa)                100   27585.35 µs/op
Topo.contains?(@north_america, @russia)              50   42494.04 µs/op
Topo.contains?(@russia, @usa)                        10   128661.50 µs/op

GEOS

todo

Results

BEAM Topo.contains?(@north_america, @usa)                 50   37791.62 µs/op
HiPE Topo.contains?(@north_america, @usa)                100   27585.35 µs/op -10206.270
BEAM Topo.contains?(@north_america, @russia)              20   73533.40 µs/op
HiPE Topo.contains?(@north_america, @russia)              50   42494.04 µs/op -31039.359
BEAM Topo.contains?(@russia, @usa)                         5   245850.60 µs/op
HiPE Topo.contains?(@russia, @usa)                        10   128661.50 µs/op -117189.1

Xeon 3.30GHz

  • Intel(R) Xeon(R) CPU E31240 @ 3.30GHz

  • 8 cores

  • 24Go

  • FreeBSD 10.3-RELEASE-p11

  • Erlang/OTP 19 [erts-8.2] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false]

  • Elixir 1.3.4

Topo, Without HiPE

## GeoBench
benchmark name                               iterations   average time
Envelope.contains?(@north_america, @russia)    10000000   0.11 µs/op
Envelope.contains?(@north_america, @usa)       10000000   0.12 µs/op
Envelope.contains?(@russia, @usa)              10000000   0.14 µs/op
Topo.contains?(@north_america, @usa)                100   14693.69 µs/op
Topo.contains?(@north_america, @russia)             100   26424.66 µs/op
Topo.contains?(@russia, @usa)                        20   87269.85 µs/op

Topo, With HiPE

19h08. gettext 19h11~, gettext ok 19h17, 19h23 ok

## GeoBench
benchmark name                               iterations   average time
Envelope.contains?(@north_america, @russia)    10000000   0.11 µs/op
Envelope.contains?(@north_america, @usa)       10000000   0.12 µs/op
Envelope.contains?(@russia, @usa)              10000000   0.16 µs/op
Topo.contains?(@north_america, @usa)                100   11093.37 µs/op
Topo.contains?(@north_america, @russia)             100   17096.10 µs/op
Topo.contains?(@russia, @usa)                        50   50777.66 µs/op

GEOS

GEOS.contains(@north_america, @usa)            10000000   0.19 µs/op
GEOS.contains(@north_america, @russia)               10   136897.70 µs/op
GEOS.contains(@russia, @usa)                         50   38856.50 µs/op

Results

BEAM Topo.contains?(@north_america, @usa)                100   14693.69 µs/op 
HiPE Topo.contains?(@north_america, @usa)                100   11093.37 µs/op -3600.319

BEAM Topo.contains?(@north_america, @russia)             100   26424.66 µs/op
HiPE Topo.contains?(@north_america, @russia)             100   17096.10 µs/op -9328.560

BEAM Topo.contains?(@russia, @usa)                        20   87269.85 µs/op
HiPE Topo.contains?(@russia, @usa)                        50   50777.66 µs/op -36492.19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment