问题标签 [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 - Process Explorer .Net Assemblies 选项卡中奇怪的程序集名称
我正在查看 Process Explorer 中的 .Net Framework 进程,并且可以在加载的 .Net 程序集列表中看到一些随机命名的程序集,例如 p2m1qbui、rhrfmrlb 等。它没有显示从中加载的路径程序集。
有人可以解释这些组件是什么吗?
谢谢
.net - GAC 中引用的程序集指向 C:\WIndows\assembly\tmp 下的副本
我试图查看我的应用程序在运行时引用了哪个版本的程序集。我知道该程序集安装在 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 索引器,以及我能想到的任何东西。
我怎样才能找出真正的应用程序“系统,PID:4”?
谢谢你。
c# - 如何使用 SysInternal Handle 来识别代码中的哪个对象锁定了“Test File.pdf”文件
我需要知道如何使用 Handle 来识别代码中的哪个对象锁定了 pdf 文件。
我在后台生成了带有水晶报告的pdf文件,将pdf通过电子邮件发送给收件人,然后想删除该文件,但一直收到此消息
我处置了ReportDocument
&SmtpClient
对象,但这没有帮助,然后我尝试了 ProcessExplorer 和命令行句柄,并使用以下命令
这也无济于事。我再次检查了代码并通过调用 dispose 方法解决了问题MailMessage
所以我想知道是否可以在第一个实例中使用句柄来识别代码中的锁定对象。
windows - Windows 程序如何在不重新启动或调用 CreateService 的情况下加载内核驱动程序
我知道 Sysinternals 的 Process Explorer 会静默加载一个名为PROCEXPxxx.SYS
. 我想知道它是如何做到这一点的。对我来说,它看起来像是在我们的应用程序中静默捆绑内核模式组件的一个很好的例子。
首先,驱动程序是从 exe 动态创建的(可能作为资源)。
通过使用进程监视器检查注册表,我可以告诉 PE 正在使用手动RegCreateKey
创建密钥HKLM\System\CurrentControlSet\Services\PROCEXPxxx
(然后立即删除它,以便在驱动程序运行后什么都没有留下)。
通过使用“ dumpbin /imports procexp.exe
”,我发现PE根本不导入CreateService
。通过使用 API Monitor ( http://www.rohitab.com/apimonitor ),我确实确认CreateService
在我们运行它时不会调用它。
那么,Process Explorer 如何在不重启和调用的情况下优雅地静默加载驱动程序CreateService
?
grails - 进程监视器 > 未找到 I/O 名称 > Grails 应用程序
我正在尝试加速 grails 2.3.7 应用程序的启动。其中一部分是将内容转移到 RamDrive 并从那里启动项目和 inteli-j。
我注意到虽然 grails 尝试读取许多文件,但在许多情况下这些文件不存在或路径不存在。
它看起来非常忙碌和杂乱无章。
有谁知道如何改进和避免这些冗余和低效的系统调用以及如何加速启动?
是 grails 本身还是包含的特定插件的问题?
图片也可在屏幕截图中找到。
此外,请在下面找到启动期间执行的各种操作的图表。不幸的是,CPU 使用率永远不会达到 100%,这意味着 grails 启动可能不会优化为使用所有内核。
java - Java有自动并行化吗?
我编写了一个计算量很大的单线程程序,但是当我执行它时,我惊讶地发现我的四核处理器的利用率达到了 95%。我期待看到接近 25% 的利用率(一个核心)。我使用了sysinternals的Process Explorer ,进一步惊讶地发现 Java 进程有六个线程,负载分布几乎相同,约占总处理器时间的 16%。
最初我打算并行化我的代码,但现在看来我不会获得任何性能,因为即使使用我的非并行代码,CPU 已经处于 95% 的负载。
几乎看起来 Java 会以某种方式自动并行化我的代码,但网络上的所有内容都告诉我这不是真的。有谁知道发生了什么?
编辑:我添加了一些屏幕截图,希望能回答以下一些问题:
系统空闲 - 1% 负载。我正在使用具有 8 个逻辑内核的四核 CPU。
我的非并行java程序正在运行。请注意,所有 4 个核心几乎都已用尽:
从 SysInternals Process Explorer 查看我的非并行 Java 程序。注意负载几乎相同的 8 个线程:
java - 如何知道正在执行哪个命令行进程?
如何使用任何命令行工具知道该进程正在运行哪个命令,我知道在进程资源管理器的帮助下我们可以看到它,但是我可以使用任何命令行工具(独立)或 java 方法来提取它信息?
有一个名为PsList的工具,它提供有关进程的基本信息,但没有选项可以查看命令行