2012-02-29 5 views
4

リソース(.resx)ファイルがあり、現在58の文字列プロパティがあります。この文字列プロパティの量は大きくなる可能性があります。文字列リソース(.resx)プロパティはメモリ内に保持されますか?

私の疑問は、それらの文字列がメモリに保持されているかどうかです。私は200を持っている場合、すべてのメモリに保持されますか? 文字列はファイルに保存され、ResourceManagerはファイルにアクセスしますか?それとも何か?どのようにこの作品ですか?

答えて

2

一般的に、.resxファイルはresgen.exeファイルで.resourcesにコンパイルされ、アセンブリ自体としてアセンブリリソースとして保存されます。 Visual StudioプロジェクトのResXファイルのプロパティを見ると、ビルドアクションが組み込みリソースであることがわかります。組み込みリソースはアセンブリに埋め込まれます。したがって、アセンブリがロードされると、リソースファイルもロードされます。リソースファイルをメモリ内に保持しないリソースファイルを使用する別の方法がありますが、これは通常の使用方法です。

+0

それは(メモリ内の文字列)メモリオーバーヘッドを生成する可能性がありますか?私は(メモリオーバーヘッドについて)心配する必要がある文字列プロパティの量がありますか? –

+0

200本の弦はまったく私のようには聞こえません。ただし、メモリ消費が心配な場合は、実行中のプロセスのWindowsタスクマネージャのメモリ(プライベートワーキングセット)列を確認してください。メモリ消費量が許容できない場合は、組み込みリソース文字列を使用しない文字列を読み込む別のメカニズムを調べる必要があります。 – luksan

+0

また、最新のオペレーティングシステムには仮想メモリが搭載されているため、メモリが少ないときにメモリページをディスクにスワップアウトすることができます。 – luksan

関連する問題