BT

Erlang/OTP R16Bが並列性を改善

| 作者: Jeff Martin フォローする 16 人のフォロワー , 翻訳者 編集部N フォローする 0 人のフォロワー 投稿日 2013年3月13日. 推定読書時間: 2 分 |

原文(投稿日:2013/03/14)へのリンク

 

Erlangは並行性とリアルタイム分散システムをサポートすることに重点を置いた汎用目的の関数型プログラミング言語である。先週、Erlang R16Bのリリースされたが、言語の仮想マシンの様々な領域に並列化を増すいくつもの改良がもたらされた。

Erlangは、分散データベース、通信システム、Webサーバ、ウォールストリートにおける高頻度取引プラットフォームを含む、幾つもの異なるプロジェクトで使用されている。Erlangを使った著名なプロジェクトや企業には、GitHub、高頻度取引、そしてマルチプレイヤーゲームサーバー(すなわちCall of Duty)がある。

Erlangもこの新リリースには、リリースノートに記載されている広範な変更があり、改善点の中に注目すべき幾つもの項目がある。第一は、Erlangの仮想マシンは、プロセスの内部処理を改善したということである。これによって、並列に読み出しと書き込みができるので、プロセスの生成と終了中に競合を削減することによって、パフォーマンスが改善される。

ポート処理が大幅に改善され、この領域で並列に読み出しと書き込みができるようになった。これは、動的にポートを割り当てられるErlangの新機能と1023から65536にデフォルトのポート上限の引き上げたことの組み合わによる。プログラマーは、新しいシステムの一つの結果は、信号が本当に非同期に配信されるようになったことに注意すべきである。以前、信号が特定の配信順序を持っていたかもしれないが、その順序は、もはや想定しないか、依存することはできない。結果として、 「...これは、信号送出順序について誤った仮定をしたErlangのプログラムが、以前成功した場合でも失敗する、原因になり得ます。」

Erlangランタイムシステム(ERTS)は、非ブロッキングにおけるコードのローディングサポートを改善した。以前は、Erlangのモジュールをロードするのに、シングルスレッドモデルが使われ、ローディングプロセス中にVMを停止した。このリリースでは、Erlangは非ブロッキング操作をサポートするため、コードの実行を停止させずにコードを読み込むことができるようになった。新しいモジュールのロード中に、SMPシステム上での実行時に、これがVMのパフォーマンスを向上するはずである。

この新リリースは、Windowsの32ビットおよび64ビット、両プラットフォーム用のコンパイル済みバイナリをサポートする。他のプラットフォームでは、それらの適切なパッケージマネージャを介してサポートされる。ソースコードは、GitHubで閲覧することがでる。(R16Bソースのアーカイブもダウンロードすることもできる。)

 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT