0

私はほぼリアルタイム アプリケーションに近いアプリケーションに取り組んでいます。このアプリケーションに接続するユーザーは 100 人を超えます。

今私の問題は、バイナリ リソース、つまり mp3 ファイルを持っていることです。ユーザーごとに個別のユーザー インスタンスを作成していますが、アプリケーションは正常に動作しますが、問題はファイルが 5 MB を超えることです。そのため、100 ユーザー用に個別のインスタンスを作成すると、サイズが 500 MB になり、メモリを継続的に消費します。 .

私が考えている別の解決策は、このリソースをグローバル(静的)として保持することですが、これはマルチユーザー環境のアプリケーションであり、すべてのユーザーがリソースに継続的にアクセスするため、これを保持すると問題が発生する可能性があると思いますすべてのユーザーに対してグローバルなリソース。

何を指示してるんですか?他にアイデアがあれば共有してください。

前もって感謝します。

4

1 に答える 1

0

パフォーマンスとメモリ使用量に関しては、トレードオフが必要です。

同じバイナリ リソースがすべてのユーザーに提供されている場合は、それをグローバルに維持することをお勧めします (ユーザーがリソースにアクセスするためのアクセス制御が存在しないことを前提としています)。ただし、すべてのバイナリ リソースをメモリに継続的に格納する代わりに、リソースをキャッシュするメカニズムを実行できます。

ユーザーが特定のリソースに初めてアクセスするときに、そのリソースをメモリにロードできます。構成された間隔が経過してもユーザーがアクセスしていない場合は、メモリから削除できます。

于 2012-04-07T15:50:11.753 に答える