6

この質問はパフォーマンスに関するものです

私は MVC4 に取り組んでおり、多言語ビューをサポートしたいと考えています。

次のように、言語ごとに 1 つのリソース ファイルを使用しています。

Multi.resx For English as default
Multi.ar.resx for Arabic 
Multi.fr.resx for Frensh

文化を指定した後、私は自分の見解でこれを行います

@Multi.Name

ただし、ブレークポイントを作成して@Multiの値を確認すると、実際にはリソース内のすべてのキーが含まれています。それらすべてを想像してみてください:P

私の質問は、ビューごとにリソース ファイルを使用した場合、パフォーマンスが向上するかどうかです。または、ビューごとに複数のリソース ファイルを使用している場合でも、アプリケーションを実行するとすべてのリソースが読み込まれますか?

私は本当に英語が苦手です。私の質問が理解できなかった場合は、明確にするように私に尋ねてください。

4

2 に答える 2

2

これは古いスレッドであることは知っていますが、答えも探しています。単一の (そして巨大なリソースの) ファイルがパフォーマンスに影響を与えましたか? .

調査した結果、このリンクを見つけたので、共有することにしました (まだ探している場合に備えて)。

まあ、短い答えはNOです。パフォーマンスには影響しません。ただし、大規模なチームで作業している場合 (各プログラマーが同じリソース ファイルを変更する必要がある場合)、問題が発生する可能性があり、変更をマージするのが面倒な場合があります。

MSDNのガイドラインは次のとおりです。

グローバル リソース ファイルとローカル リソース ファイルの選択

Web アプリケーションでは、グローバル リソース ファイルとローカル リソース ファイルを自由に組み合わせて使用​​できます。通常、ページ間でリソースを共有する場合は、グローバル リソース ファイルにリソースを追加します。グローバル リソース ファイル内のリソースも、プログラムでファイルにアクセスする場合に備えて厳密に型指定されます。

ただし、すべてのローカライズされたリソースをグローバル リソース ファイルに格納すると、ファイルが大きくなる可能性があります。複数の開発者が 1 つのリソース ファイル内の異なるページで作業している場合、グローバル リソース ファイルの管理も難しくなる可能性があります。

ローカル リソース ファイルを使用すると、単一の ASP.NET Web ページのリソースを簡単に管理できます。ただし、ページ間でリソースを共有することはできません。さらに、多くの言語にローカライズする必要があるページが多数ある場合は、多数のローカル リソース ファイルを作成することがあります。サイトが多くのフォルダーと言語を含む大規模な場合、ローカル リソースによって、アプリケーション ドメイン内のアセンブリの数が急速に増加する可能性があります。

ローカルまたはグローバルの既定のリソース ファイルに変更を加えると、ASP.NET はリソースを再コンパイルし、ASP.NET アプリケーションを再起動します。これは、サイトの全体的なパフォーマンスに影響を与える可能性があります。サテライト リソース ファイルを追加しても、リソースの再コンパイルは発生しませんが、ASP.NET アプリケーションは再起動します。

これが同じ答えを探している人の助けになることを願っています。

乾杯、サム

于 2017-12-12T07:32:59.960 に答える
0

あなたの問題の解決策は、この質問で説明されています(実際の回答):大きなリソースファイルを物理的に複数のファイルに分割し、コンパイラはそれを1つとして扱います

于 2013-11-11T16:16:17.330 に答える