私は、Vod要求を処理する高性能rtspサーバを実装したいと考えています。これは、シグナリング要求を処理するだけで、メディアファイルをストリーミングする必要はありません。私はMinaのネットワークフレームワークに基づいてJavaで書かれたバージョンを完成させました。そのパフォーマンスはあまり高くないようです。高性能rtspサーバ
高性能SIPサーバ(VoIPサーバなど)はC言語で書かれています(例えばOpenSIPS、Kamailo)。私のプロジェクトではパフォーマンスを大幅に改善するためにCまたはC++を使用する必要がありますか?
BTW。 OpenSERがCの著者によって作成された理由の説明を見つけました: "一方で、JavaでSIPアプリケーションを開発するときには多くの問題を引き起こすガベージコレクタです。Javaのストップウォーキングで書かれたAheavily loaded serverガベージコレクタがメモリをクリーニングしています。ガベージコレクタによって引き起こされる遅延は10秒を超えることもありますが、そのような遅延は受け入れられません。 " これは現実にはCを使うべきであるということですか?
理論上、Javaアプリケーションのパフォーマンスを「向上させる」とは、アセンブリ/ C/C++のような他のプログラミング言語を使用して最適化されたネイティブOSのダイナミックリンクライブラリのラッパーを作成することです。これは、JNIやJNAなどのJavaテクノロジを使用して行うことができます。いくつかのプロジェクトでは、VLCJ(libVLCエンジンへのJavaバインディング、VLCメディアプレーヤーで使用されるGCC +ライブラリとプラグインのコレクション) –