このエントリーをはてなブックマークに追加

8月

9

【第10回清流elixir勉強会】Elixirでのパフォーマンス測定(速度)について

Elixirの強力なパターンマッチ。ifやcase...どちらが速いのかを測定してみる

Organizing : OKB(sing_mascle69)

Hashtag :#清流elixir
Registration info

参加枠

Free

FCFS
5/8

Description

第10回清流elixirコミュニティ勉強会の概要

トピック

まだまだ若いコミュニティですので至らぬ点も多いですがどうか宜しくお願いします
わりとゆるくやってますのでお気軽にお参加ください
主催者 => 参加者という一般の勉強会ではなく
主催者 <=> 参加者という双方で情報共有できるような勉強会を目指しております

前回は「Elixir大入門会」を開催させて頂きまして、6名の方にご参加頂きまして
参加人数の過去最高記録を更新することが出来ました。ありがとうございます!!
今後も定期的にElixir入門会(内容は同じになるかと思います)を開催していくつもりですので
開催の時期につきましては改めて告知をさせて頂きます

入門会ではどんな内容をやっているのかを知りたい方は詳細を私のブログにまとめてますのでぜひご一読下さい
【レポート】第9回清流elixir勉強会を開催しました【ウェルカムElixir入門会】

今回の内容について

Elixirには強力なパターンマッチが用意されています
このパターンマッチの性能を引き出すことによって、あらゆる処理をシンプルに気軽に記述することが可能です

defmodule Sample do
  #パターンマッチを使う記述
  def pattern_match("banana") do
    110
  end
  def pattern_match("apple") do
    90
  end

  #caseを使う記述
  def if_or_case(fruit) do
    case fruit do
      "banana" -> 110
      "apple" -> 90
    end  
  end
end

res = [
  Sample.pattern_match("banana"),
  Sample.pattern_match("apple"),
  Sample.if_or_case("banana"),
  Sample.if_or_case("apple")
]

Enum.map(res, &(IO.puts(&1)))
# 110
# 90
# 110
# 90

Elixirには「ifやcase」といった従来の馴染みの深い制御文が用意されていますが
これらの制御文は可能な限り使わずにパターンマッチを使いこなすというのがお作法となっています

しかしながらパターンマッチで記述した場合とifやcaseのような制御文で記述した場合、どちらの方がパフォーマンスに優れているかということは気になりつつも、数値化されているソースはあまりありません

ないのならやっちゃおうというノリで今回はElixirでのパフォーマンス測定の方法から学び
実際にパターンマッチと制御文でどれだけパフォーマンスに違いがあるのかを確認していきます

Elixirでのパフォーマンス測定の方法については事前に私のブログにまとめましたので、ご参照下さい
Elixirでの実行速度の測定と色々と実験してみた【Enun.sum vs Enum.reduce etc...】

ざっくりアジェンダ

  • Elixirに用意されている制御構文について
  • Elixirでのパフォーマンス測定の方法について
  • パターンマッチ vs if, case...

タイムスケジュール

  • 19:30 ~19:40 => 会場準備(お互いの自己紹介など)
  • 19:40 ~ 20:00(変動あり) => 本日取り組む内容についてざっくりと説明
  • 20:30 ~ 21:20 => 手を動かして共に学ぶ
  • 21:20 ~ 21:30 => 撤収(終了時間が決まっているのでご協力ください)

開催場所

お気軽会議室名古屋丸の内ブルーというレンタルオフィスになります
(地下鉄桜通線3・4番出口より徒歩1分)
DK丸の内ビル4階の402号室になります
[居酒屋まるく] [桜通線エレベーター] [--> 会場ココ!! <--]

会場での注意事項

  • 飲食可ですが、ゴミは各自お持ち帰りください
  • 喫煙は禁止となっておりますのでご注意ください
  • 周囲に迷惑となる騒音は控えてください
  • 使用できる時間が決まっておりますので終了10分前には撤収の準備をお願い致します

お持ちいただくもの

  • ノートパソコン(必須) ※こちらからの貸し出しは御座いません
  • 飲み物(自由)
  • 書籍(自由) ※プログラミングelixirは僕が1冊、毎回持っていきます

環境構築について

OS問いませんが、elixirのプロンプト(iex)が起動するところまで完了しているものと想定しております
インストール方法につきましてはelixir-lang公式サイトよりご確認下さい
ブラウザ上でElixirを実行できる環境も御座いますのでこちらだけでもOKですPaiza

Media View all Media

If you add event media, up to 3 items will be shown here.

Feed

sing_mascle69

sing_mascle69 published 【第10回清流elixir勉強会】Elixirでのパフォーマンス測定(速度)について.

08/02/2019 23:55

【第10回清流elixir勉強会】Elixirでのパフォーマンス測定(速度)について を公開しました!

Group

清流elixir

ゼロから学ぶをコンセプトに東海地方(岐阜/愛知)で活動していきたいelixirの勉強会コミュニティ

Number of events 13

Members 18

Ended

2019/08/09(Fri)

19:30
21:30

開催日時が重複しているイベントに申し込んでいる場合、このイベントには申し込むことができません

Registration Period
2019/08/02(Fri) 21:00 〜
2019/08/09(Fri) 19:00

Location

お気軽会議室名古屋丸の内ブルー

愛知県名古屋市中区丸の内2丁目18-20

Organizer

Attendees(5)

sing_mascle69

sing_mascle69

【第10回清流elixir勉強会】Elixirでのパフォーマンス測定(速度)について に参加を申し込みました!

murakami_motokazu_1213

murakami_motokazu_1213

【第10回清流elixir勉強会】Elixirでのパフォーマンス測定(速度)についてに参加を申し込みました!

keimoriyama

keimoriyama

【第10回清流elixir勉強会】Elixirでのパフォーマンス測定(速度)について に参加を申し込みました!

Papillon6814

Papillon6814

I joined 【第10回清流elixir勉強会】Elixirでのパフォーマンス測定(速度)について!

g_kenkun

g_kenkun

【第10回清流elixir勉強会】Elixirでのパフォーマンス測定(速度)についてに参加を申し込みました!

Attendees (5)