が例外をスローするプログラムの実行を継続するのに十分なメモリをスロー言う:RoslynのスクリプトAPIは、私はロスリンScriptingAPIを使用してい
メモリ不足がプログラム
の実行を継続するためにコンパイルする場合私は目の上に、後にそれらを使用するすべてのコンパイル済みスクリプトを保存することができます思っ
foreach (string script in scripts)
{
var evalFunc = CSharpScript.Create(script, roslynOptions, typeof(ParamsVM));
evalFunc.Compile();
cachedScripts.Add(rule.Formula,evalFunc);
}
:このような複数の文字列のスクリプト、一つずつ、データアイテムの残量は、この節約のために〜4GBに達する。
必要に応じて各スクリプトを使用した場合(後でデータ項目を反復処理するとき)、各スクリプトは何度も何度もコンパイルされます。
このようなユースケースのソリューションは何ですか?
あなたは最も頻繁に使用されるキャッシュだけではありませんか? – BugFinder
私は – Dabbas
@BugFinderが持っているすべてのデータセットですべてのスクリプトを使用しています。別のアプリケーションドメインにロードしない限り、このプロセスが作成する「メモリ内DLL」をジェットソンすることは不可能です。 appdomainがコードを読み込むと、それは一方向の処理です。あなたはappdomainsをアンロードすることができます...どの時点で、それはおそらく仕事を得るためにMEFのようなものを採用する方が良いです。 – spender