問題タブ [process-explorer]
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.
.net - ツールを使用して .NET スレッドのスタック サイズを調べる方法は?
私は .NET に比較的慣れていませんが、Win32 スレッドで無限再帰が発生すると、最終的にスレッド スタックのスペースが不足し、スタック オーバーフローが発生することを理解しています。
ここに .NET アプリケーションがあり、シナリオで無限再帰を実行している可能性があります。
詳細を調べることができるように、Process Explorer などのツールを使用してマネージド スレッド スタックの現在の消費量を調べる方法があるかどうか疑問に思っていました。
.net - C:\WINdows\assembly\tmp の下のコピーを指す GAC 内の参照アセンブリ
アプリケーションによって実行時に参照されているアセンブリのバージョンを確認しようとしています。アセンブリが GAC にインストールされていることはわかっています。これは、MSI を介してインストールされたサードパーティの商用製品であり、実行時に一覧表示さgacutil /lれ、 の下のフォルダーにも表示されるためC:\Windows\Microsoft.NET\assembly\GAC_MSILです。
Process Explorerを使用して、参照されている DLL を下のペインに表示し、参照されているアセンブリを確認しています。参照されているアセンブリが にあることがわかりましたC:\Windows\assembly\tmp\NYIEPEO0\。Windows エクスプローラーでそのフォルダーを参照しようとすると (アプリケーションがまだ実行中で、参照されているアセンブリがまだ Process Explorer に表示されている場合)、存在しないかアクセスできないと表示されます。さらに、Process Explorer にはバージョン、説明などの詳細が表示されないため、アセンブリのバージョンを特定できません。
私の質問は次のとおりです。参照されているアセンブリが実際に存在する場所ではなく、「tmp」フォルダーの下にあるのはなぜですか(アセンブリのインストールに関係しているというこのようなソースを見たことがありますが、アセンブリはすでにインストールされています上記で指摘したように、正しい場所にある)、実行時にすべてのアセンブリが適切な場所から参照されるように、GAC でその動作を無効にすることはできますか?
process-explorer - スレッド タブの Procexp.exe の先頭行が強調表示されたままにならない
procexp.exe の使用に問題があります。[スレッド] タブを表示し、CPU 使用率で並べ替えると、スレッドのリストが非常に速く更新されるため、CPU 使用率が最も高いスレッドのスタック トレースを取得することはほとんど不可能です。通常、強調表示したスレッドは、[スタック] ボタンをクリックするまでにリストの一番上にはありません。どのスレッドがあるかに関係なく、常に一番上の行を強調表示したままにする方法はありますか? または、Windows 32/64 ビット プロセスで使用するより優れたアプリケーションを知っている人はいますか?
windows-7 - Process Explorer: システム PID 4 を調べる方法
Process Explorer を使用すると、特定のファイルが「システム、PID: 4」によってロックされていることがわかります。これにより、VB.NET VS2012 IDE によるファイルの再作成がブロックされます。「許可が拒否されました」というエラーが表示されます。
ファイルをロックする可能性のあるものはすべて無効にしようとしました... アプリケーションの互換性、バックアップ、Windows Defender、Windows Indexer など、考えられるものはすべて無効にしました。
「システム、PID: 4」が実際にどのアプリケーションであるかを調べるにはどうすればよいですか?
ありがとうございました。
c# - SysInternal ハンドルを使用して、コード内のどのオブジェクトが "Test File.pdf" ファイルをロックしているかを特定する方法
Handle を使用して、コード内のどのオブジェクトが pdf ファイルをロックしているかを特定する方法を知る必要があります。
バックグラウンドでクリスタルレポートを含むpdfファイルを生成し、pdfを受信者に電子メールで送信してから、ファイルを削除したかったのですが、このメッセージが表示され続けました
オブジェクトを破棄しましたが、それは役に立たなかったので、次のコマンドでProcessExplorerとコマンドラインハンドルを試しましReportDocumentたSmtpClient
それも助けにはなりませんでした。コードをもう一度調べて、dispose メソッドを呼び出して問題を解決しました。MailMessage
したがって、最初のインスタンスでハンドルを使用して、コード内のロック オブジェクトを識別できるかどうか疑問に思っています。
windows - Windows プログラムは、再起動または CreateService を呼び出さずにカーネル ドライバーをロードする方法
Sysinternals の Process Explorer が というデバイス ドライバーをサイレント モードで読み込むことは知っていますPROCEXPxxx.SYS。私はそれがこれをどのように行うのか疑問に思っています。私には、アプリケーションにカーネル モード コンポーネントを静かにバンドルする良い例のように見えます。
まず、ドライバーは exe から (おそらくリソースとして) 動的に作成されます。
Process Monitor を使用してレジストリを確認すると、PE がRegCreateKeyキーをHKLM\System\CurrentControlSet\Services\PROCEXPxxx手動で作成するために使用していることがわかります (その後すぐに削除して、ドライバーの実行後に何も残らないようにします)。
" " を使用するdumpbin /imports procexp.exeと、PE がまったくインポートされないことがわかりましたCreateService。また、API Monitor ( http://www.rohitab.com/apimonitorCreateService ) を使用して、実行時に呼び出されないことを確認しました。
では、Process Explorer はどのようにして再起動や呼び出しを行わずにドライバーをサイレント モードでエレガントにロードするのCreateServiceでしょうか?
java - Java には自動並列化機能がありますか?
計算負荷の高いシングル スレッド プログラムを作成しましたが、それを実行すると、クアッド コア プロセッサの使用率が 95% であることに驚きました。25% 近くの使用率 (1 コア) になると予想していました。sysinternalsのProcess Explorerを使用したところ、Java プロセスに 6 つのスレッドがあり、合計プロセッサ時間の約 16% というほぼ同じ負荷分散が行われていることがわかり、さらに驚きました。
当初はコードを並列化する予定でしたが、非並列コードでも CPU の負荷がすでに 95% に達しているため、パフォーマンスが向上しないようです。
Java がどういうわけか私のコードを自動的に並列化しているように見えますが、ネット上のすべてのものは、これが真実ではないことを示しています。誰が何が起こっているのか知っていますか?
編集:以下の質問のいくつかに答えられることを願って、いくつかのスクリーンショットを追加しました:
アイドル時のシステム - 1% の負荷。8 つの論理コアを備えたクアッド コア CPU を使用しています。

非並列 Java プログラムが実行されています。4 つのコアすべてがほぼ限界に達していることに注意してください。

SysInternals Process Explorer からの非並列 Java プログラムのビュー。ほぼ同じ負荷を持つ 8 つのスレッドに注意してください。

java - どのコマンドラインプロセスが実行されているかを知る方法は?
プロセスがコマンドラインツールを使用してどのコマンドを実行しているかを知る方法、プロセスエクスプローラーの助けを借りてそれを見ることができることを認識していますが、これを抽出するために使用できるコマンドラインツール(スタンドアロン)またはJavaメソッドはありますか情報?
プロセスに関する基本的な情報を提供するPsListというツールがありますが、コマンドラインを表示するオプションはありません