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