MP3を再生するC++プログラムを書きたいです。利用可能なMP3デコードライブラリの中から、mpg123を選択しました。
libmpg123に対してリンクし、コードで必要な関数呼び出しを行うことができることに加えて、ライブラリには、実行可能ファイルと通信できるバックエンド/フロントエンドインターフェイスが含まれているため、コードを含める必要がないことに気付きました。私のプログラムで。
ライブラリに対して単にリンクするのではなく、フロントエンドを作成することの利点は何ですか?
利点のほとんどは、実行可能ファイルとライブラリ実行可能ファイルの間のプロセス分離に由来します。
もちろん、外部通信チャネルを使用するとパフォーマンスが低下します。しかし、そのようなデカップリングを持つことの利点は非常に印象的です。
私が見る限り、実行可能ファイルの唯一の使用法はテスト目的です。このサードパーティのlibを実行可能ファイルとして実行して、提供されているさまざまなAPIの動作を理解し、コードからその使用法をよりよく理解し、さまざまな入力でどのように機能するかを確認します。その後、ライブラリ呼び出しがプロセスのアドレス空間内にあるように、それをプロセスにリンクします。2つの実行可能ファイルを同時に実行すると、IPCオーバーヘッドも発生します。