問題タブ [clr]
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.
sql-server - 負荷の高い操作用の SQL CLR オブジェクト
これが私のシナリオです:
C# フレームワークにセット ロジックを実装しました。セットには大量のオブジェクトが含まれる場合があり、最悪の場合は最大 100 万個になることもあります。セットには Doc と呼ばれるオブジェクトのリストだけが含まれていると仮定します。オブジェクトが多数になる可能性があるため、セットの作成方法と使用方法を開発者が選択できるようにしたいと考えています。
小さいセットの場合、開発者は新しいセットを作成し、そのセットに doc オブジェクトを追加するだけです。ユニオン、インターセクトなどの通常のセット ロジックを使用できます。その後、開発者は任意の時点で、セットにプライマリ ID が割り当てられる OR レイヤーを使用してセットを永続化できます。
データベースに保持されている非常に大きなセットの場合、データベースから doc オブジェクトの ID を抽出し、SQL 2008 CLR でセットを操作できるようにすることで、ID をセット オブジェクトに保存するプロセスを回避したいと考えています。 . この署名のような単純な関数が必要です。
これにより、開発者は、ID をセットに追加することだけを目的としてデータベースからすべての ID を抽出することなく、Expression に一致するセットに任意のドキュメントを追加できます。
私の質問は、ストアド プロシージャでこの実装にどのようにアプローチするのが最善ですか? どうにかしてラムダをストアド プロシージャに渡すことはできますか? IDoc インターフェイスを実装して CLR にロードし、次のような署名を持つことを考えていました。
ただし、ラムダを SP に渡す必要があります。開発者がさまざまな条件を使用してセットを作成できるように、フレームワークを十分に柔軟にしたいと考えています。
c# - C# アプリの現在のメモリ使用量を取得する方法はありますか?
いくつかのプロファイリング タスクを自動化しており、ヒープ スペースと世代サイズをリアルタイムでログに記録したいと考えています。プロファイリング APIは、私が必要としているものに対して非常に複雑に思えます。また、個々の割り当てとコレクションをリッスンしているように見えますが、これは私にとってそれほど重要ではありません。プロファイリング ツールはもちろん非常に役立ちますが、より柔軟でプログラム可能なインターフェイスを探していました。
.net - CLR と CLI - 違いは何ですか?
CLR と CLI の違いを正確に知りたいですか? これまで読んだ内容から、CLI は CLR のサブセットであることを示しているようです。しかし、CLR のすべてが必須ではないでしょうか。CLI を作成するために CLR から除外される可能性のあるものは何ですか?
.net - コールスタックの RedirectedThreadFrame
windbg のコールスタックで RedirectedThreadFrame を見た人はいますか? これは、マネージ コールスタックからのものです。フレームワーク内で多くの例外がスローされているのを目にしていますが、それが私にバブルされたことは一度もありません。その理由を理解しようとしています。ネイティブ コールスタックには次のものがあります。
0526f6b0 79f63d27 KERNEL32!RaiseException+0x53 0526f718 79f64102 mscorwks!Thread::RedirectedHandledJITCase+0x198 0526f720 00000000 mscorwks!Thread::RedirectedHandledJITCaseForGCThreadControl+0x7
マネージ コールスタックには次のものがあります。
0526f6dc 7c812aeb [RedirectedThreadFrame: 0526f6dc] 0526f724 00c741b9 Library.Class.b__3(MyObject) 0526f7cc 00c73c85 ParallelProcessingLibrary.ActionController`1[[System.__Canon, mscorlib]].ExecutePartition(System.Object) 0526f840System. System.Object) 0526f84c 792e019f System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext、System.Threading.ContextCallback、System.Object) 0526f864 797db48a System.Threading.ThreadHelper.ThreadStart(System.Object) 0526fa8c 79e71b4c [GCFrame: 0526fa8c ]
これが何を意味するのかについての情報を見つけることができませんでした。説明をいただければ幸いです。
c# - .NET 3.5 で動的オブジェクト作成とメソッド呼び出しを行う方法
クラスのオブジェクトを作成するコードはどのように見えますか:
上記のタイプの、そして呼び出し
そのオブジェクトで?
c# - CLR でのキャストと「as」キーワードの使用
インターフェイスをプログラミングするとき、多くのキャストやオブジェクト タイプの変換を行っていることがわかりました。
これら 2 つの変換方法に違いはありますか? もしそうなら、費用の違いはありますか、それとも私のプログラムにどのように影響しますか?
また、「一般的に」好ましい方法は何ですか?
visual-c++ - In C++/CLI, what does the hat character ^ do?
I was reading Ivor Horton's Beginning Visual C++ 2008 and many of its CLR examples have this definition for main:
I went back, page by page, to the beginning of the book to find the first such instance with an explanation what it really means, but couldn't find one.
明らかにそれは標準と同じ意味ですが、いつ、なぜそれが実際に使用されるのか、そしてなぜそれが存在するのint main(int argc, char *argv[])
かを知りたいです(ポインターと参照が表現できないことをしますか)?^
*
&
c# - VB.Net と C# の「新しい WebControl として」の違い
私はいくつかのコードをリファクタリングしていましたが、その一部には VB.Net から C# への移行が含まれていました。
古いコードでは、次のようにメンバーを宣言していました。
新しいコードは、次のように最終的に機能するようになりました。
New
キーワードの意味は次のとおりだと推測できます:コンストラクターを呼び出してください!しかし、VB.Net では、C# では呼び出すことができなかったコンストラクター (パラメーターのないコンストラクター) をどのように呼び出すのでしょうか?
java - Java および .NET ヒープのオーバーヘッド
ヒープとガベージコレクターの仕組みを理解しています。ガベージコレクションは世代ごとに発生し、メモリ割り当ては順次発生し、ガベージコレクション中にデータをシフトして継続ブロックを形成することで圧縮された空き/未使用スペースなどがあります。
割り当てられたメモリ チャンクのヘッダーはありますか?それらはどのくらいの大きさですか (.NET CLR の場合は 8 ~ 16 バイトだと聞きました)、バイト、ワード、またはクワッド ワード アラインメントが存在する場合は? x86 および x64 プロセッサ アーキテクチャの JIT (Java) および CLR (.NET Framework または Mono) の実装に関する情報に興味があります。
.net - NGen を正常な状態に戻すには助けが必要です
私のコンピューターでは NGen に不満があり、何が問題なのかを深く理解する方法が見つかりません。
起動するたびに、ngen は次のメッセージをログに記録します。
.NET ランタイム最適化サービス (clr_optimization_v2.0.50727_32) - サービスが一時的なエラーの制限に達しました。シャットダウンします。Service Manager から返された最後のエラー: 0x8000ffff。
コマンドラインで最適化サービスを開始しようとすると、同じエラーが再度ログに記録されます。
ngen サービスを開始し、すぐにキューを一時停止することができました (次のように 2 行のバッチ ファイルを作成することによって)。
net start clr_optimization_v2.0.50727_32
ngen キューの一時停止
だから今、次のようにさまざまなステータスレベルでアイテムを実行して、キューをクリアしようとしました:
ngen executequeueditems 3 /nologo /verbose
しかし、結果は常に次のとおりです。
壊滅的な障害 (HRESULT からの例外: 0x8000FFFF (E_UNEXPECTED))
...途中でVisual Studio 2008をアンインストール/再インストールしました。SQLサーバー2005をアンインストールし、「システムファイルチェッカー」を実行しました:sfc /scannow
アイデアが不足しており、ngen の専門家からの助けが大好きです。
「これらの壊滅的な障害の原因は何ですか?」などの情報を入手するにはどうすればよいですか? ( /verbose オプションを使用しても、検出される情報の量は増えないことに注意してください。「生成されるキューにあるファイルは何ですか?」 -- それらのファイルの一部を削除したり、特定のファイルに問題を突き止めたりすることはできますか? ..
.net Framework 2.0 は vista であり、オペレーティング システムの保護された部分であるため、アンインストールと再インストールは簡単ではありません。
更新:ここで提供されているアドバイスも試しました(最初の返信で言及されています)-しかし、同じ壊滅的な失敗メッセージが表示されます。
C:\Windows\Microsoft.NET\Framework\v2.0.50727>ngen executequeueditems /nologo 致命的なエラー (HRESULT からの例外: 0x8000FFFF (E_UNEXPECTED))