NIFs
Native Implemented Functions
Elixirから非Elixirプログラムを使いたい時の選択肢
の1つ。
C
ライブラリの
erl_nif
を使って橋渡しをするCプログラムを書く
Elixirからは
:erlang.load_nif/2
で読み込む
危険
NIFがクラッシュした場合にはErlang VMごとクラッシュする
Erlang VMのschedulerがpreemptしない
時間がかかる処理をさせないのが重要
as the Erlang documentation for NIFs suggest, a good rule of thumb is to keep NIFs under a millisecond of execution time.
Using C from Elixir with NIFs – Andrea Leopardi
参考
Using C from Elixir with NIFs – Andrea Leopardi
Andrea Leopardi
による記事
実例を使いながら
erl_nif
の基本的な使い方を説明してくれる
Erlang -- NIFs
Erlang -- erl_nif