問題タブ [razorengine]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-mvc - MiniProfiler を使用して ASP MVC Razor プロファイルを特定するにはどうすればよいですか
私の ASP MVC 4 Web アプリケーションには、レンダリングに数秒かかるビューがいくつかあります。コントローラーと Razor ビューの両方をプロファイリングするために、MiniProfiler をインストールしました。私の意見の 1 つでは、次の結果が表示されます。
最後から 2 番目の行は、詳細 Razor ビューをレンダリングするのに 1015 ミリ秒かかったことを示しています。使用されているパーシャルは 2.6 秒かかりました。他にもパーシャルがありますが、1 ミリ秒以下です。
レンダリングに 1 秒以上かかるものをさらに調査するにはどうすればよいですか?
asp.net-mvc - @Html.TextBoxFor() のような独自の Razor Helper メソッドを作成するにはどうすればよいですか?
@Html.TextBoxFor に似たものを実装したいのですが、代わりに @Html.SwitchFor() を呼び出して、毎回追加の html とクラスを追加することなく、使用している bool から yes/no スイッチを作成します。
かみそりの構文でこれを行う方法はありますか?
c# - NUnit: 共通言語ランタイムが無効なプログラムを検出しました
TeamCity で NUnit テストを実行すると、次のエラーが発生し続けます。
コード内の非常に長いメソッドに関連するいくつかの回答を見つけましたが、それらは関連していないようです。何か案は?
c# - CompilerParameters.GenerateInMemory = false パフォーマンスの問題
私はRazorEngineを使用してアプリ内の html テンプレートを解析しており、パフォーマンス領域をプロファイリングして潜在的な問題を調査するためにいくつかの NUnit テストを作成していました。を指定するGenerateInMemory = falseと、コードのパフォーマンスが大幅に低下するようです。
NUnit で各テストを実行する場合、CompileAssemblyFromDom() メソッドで費やされるティックの合計は次のとおりです。
これは、一部のディスク IO の追加コストに対して予想されるよりもはるかに極端な影響です。さらに、今回はテストのサイズに比例していないようです。たとえば、1000 回ではなく 200 回の反復でテストを実行した場合 (メモリ内 = false)、結果は 118M ティックで、1000 回のテスト反復に正規化すると 591M ティックになります。これは、対応するテストのメモリへのロードよりもわずかに大きいですが、フル サイズのテストが最終的に完了したときの実際のパフォーマンスよりも 1 桁小さくなっています (ハングしていると思いましたが、この質問を書いている間に終了しました)。
多数の動的アセンブリを保存するときにパフォーマンスに大きな影響を与える理由はありますか?
テストコード:
GetHtmlFromTemplate() コード:
ここで大量の無関係なコードが発生し、最終的にコードをコンパイルするために CodeDomProvider が使用される問題領域に到達します。
TLDR:少数のアセンブリ (<200) をディスクに保存するときのメソッドのパフォーマンスは、CompileAssemblyFromDom()メモリにロードするよりも悪いですが、数が増えると (~500-1000)、パフォーマンスは桁違いに悪くなりますか? この奇妙な動作の原因は何ですか?