ErlangでAESとかの暗号化を行いたいときに使う「crypto」ですが、OpenSSLのライブラリ(シェアードオブジェクトやDLL)をPort経由で使ってるんですね。
Simple dungeonで、Mnesiaに保存する際にパスワードや連絡先メールアドレスなどを暗号化しようとしているのですが、この構成だと、多数のErlangプロセスが好き放題呼ぶと、ここが隘路になるので、使いどころに注意が必要な感じです。
まあ、ちょっとやそっとじゃここがボトルネックになるほどの負荷はかからないと思うのですが、いったんボトルネック判定されたら、そこからの対策が難しいので、たまーに参照するぐらいの頻度にしておきます。。。
2012年01月06日
Erlangアプリケーションの「設定ファイル」をどう読みこませるか
Simple dungeonで、Mnesiaのノードリストや、移動処理でのインターバル値(1ブロック歩くのにかかる秒数)などをカスタマイズできるようにしたいなと思って、「設定ファイル」をどう作ればいいか調べました。
YAMLとか.ini、.confファイルのような、インストールしたアプリケーションの動作をカスタマイズするためのファイルフォーマットがあるかと思ったら、Erlangには file:consult/1 という関数が用意されていて、Erlang termで書いておけばそのままアトムや文字列、数値、リストなどを読み込んでくれるんですね。これは便利。
XMLで作って読ませることも考えたのですが、今のところはそこに注力する必要はないので、素直にfile:consult/1を使うかたちで行くことにします。
YAMLとか.ini、.confファイルのような、インストールしたアプリケーションの動作をカスタマイズするためのファイルフォーマットがあるかと思ったら、Erlangには file:consult/1 という関数が用意されていて、Erlang termで書いておけばそのままアトムや文字列、数値、リストなどを読み込んでくれるんですね。これは便利。
XMLで作って読ませることも考えたのですが、今のところはそこに注力する必要はないので、素直にfile:consult/1を使うかたちで行くことにします。