Aug
9
【第10回清流elixir勉強会】Elixirでのパフォーマンス測定(速度)について
Elixirの強力なパターンマッチ。ifやcase...どちらが速いのかを測定してみる
Organizing : OKB(sing_mascle69)
Registration info |
参加枠 Free
FCFS
|
---|
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.