こまもか
Comamoca_
古典的なPHPはCGIで実行されます。CGIはリクエスト毎にメモリを破棄するモデルとなっており、リクエスト間でのメモリ空間は独立しています。しかし、パフォーマンスに難があります。
Erlang VMもまた、リクエスト毎にメモリを破棄するという点では同じアプローチを取ります。Erlang VMではprocessと呼ばれる軽量なグリーンスレッドを用いて並列分散処理を行い、リクエスト毎にprocessを割り当てて実装するのが一般的です。
PHPのCGIとメモリ管理の考え方は共通していますが、Erlang VMは軽量なprocessにより高いパフォーマンスを実現しています。
Erlang VMは優れた処理系ですが、メジャーな言語であるErlangやElixirは動的型付け言語です。一方、最近v1に到達したGleamは、静的型付けかつシンプルな構文で、ErlangとJavaScriptにコンパイルできます。
本記事ではGleamを用いてWebアプリケーションを実装し、PHPとErlang VMの類似点と相違点を実際に検証します。堅牢なメモリ管理や高度な並列処理など、Erlang VMの魅力を紹介していきます。