问题标签 [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 - typeperf 报告的内容与其他所有工具(mem profiler、process explorer、full dump)之间的差异
尝试对同一个 .net 3.5 应用程序的 2 个版本进行前后比较,结果不一致,具体取决于我使用的工具。
typeperf - 我认为这是权威的 - 说:
- v1:244MB / 260MB(私有字节/工作集)
- v2:281MB / 296MB
Process Explorer在性能图中显示了这些数字:
- v1:283MB(私有字节)
- v2:262MB
所以 typeperf 说 v2 需要更多的内存,Process Explorer 则相反。
这些都是单独的测量和不同的运行,但数字是惊人地可靠地重现。
除了前面提到的 2 个工具之外,我还从 Process Explorer 获取了完整的内存转储,并且只查看了文件大小(还没有时间去 WinDbg 或以其他方式分析它们):
- v1:484MB(完整转储文件大小)
- v2:480MB
此外,当从.net Memory Profiler运行应用程序时,v2 中的本机内存、.net 内存以及总内存都低于 v1。
所以它似乎是对世界其他地方的 typeperf(WinDbg 分析仍然很出色)。
谁是对的,我怎么知道?
.net - Process Explorer 如何确定程序集标志?
有人知道 Process Explorer 如何确定此处显示的这些标志吗?
是否有用于此的 .NET Api?
我对 Native 标志特别感兴趣。CodeBase
我尝试在orLocation
属性上确定这一点。但这些似乎总是只返回 DLL 的路径,而不是本机映像的路径。
有任何想法吗?我被困住了。
java - 获取java进程的命令行
众所周知,所有 java 进程在任务管理器中都显示为 javaw.exe。我想获取所有此类 java 进程的命令行。一个名为ProcessExplorer的工具可以做同样的事情,但它会在 GUI 中显示所有内容,我正在寻找同样的编程解决方案。
这是ProcessExplorer工具的快照。
有任何想法吗??
c++ - 如何从 Sysinternal 的 Process Explorer 复制环境变量
是否有一种优雅的方法可以将环境变量从 Process Explorer 复制到 Process 的剪贴板?我试图比较两个 C++ 编译进程,并想看看环境变量有何不同。看来我无法复制文本并随后将其粘贴以进行视觉比较。
请注意,我宁愿坚持使用 PE,也不愿使用多种工具,但如果使用其他工具是唯一的选择,请随时提出建议。
也将其标记为 C++,期望从 C++ 开发人员/调试器的角度提供解决方案,包括使用 Visual C++
visual-studio-2010 - Visual Studio 说“它正在被另一个进程使用” - ProcessExplorer 说“没有句柄”
我知道这已经讨论了很多时间,但他们的回答对我没有帮助。
当我构建项目时,它会出现以下错误:
该进程无法访问文件“..\MyProjectFolder\obj\x86\Release\MyProject.exe”,因为它正被另一个进程使用。
到目前为止我已经尝试过:
- 关闭 Visual Studio 2010,然后再次打开它。
- 打开任务管理器(以管理员身份),没有进程运行,名为“MyProject.exe”
- 运行 SysInternals\handles.exe(再次以管理员身份),没有应用程序拥有 MyProject.exe 的句柄。(奇怪的!)
- 运行SysInternals\ProcessExplorer.exe,搜索进程名,没有句柄。(怎么来的!)
- 杀死explorer.exe,然后重新运行。没运气。
- 试图从命令行手动删除文件。相同的错误(被另一个进程使用)。
- 注销再登录,还是一样的问题。
- 重新启动机器,是的,它可以工作,但不是所需的答案:)。
我真的很想知道背后的原因。这是我第二次遇到这种情况,我不想再次重启机器。
顺便说一句,ProcessExplorer.exe 或handles.exe 怎么不显示句柄!我失去了信心。。
以下链接中讨论了非常相似的内容(甚至更多!),但它们都没有帮助我(或者我找不到合适的链接):
windows-7 - 进程资源管理器和任务管理器的区别
下面是 Windows 7 中进程资源管理器(左)和任务管理器(右)的屏幕截图。任务管理器中的进程列表按 PID 排序。如您所见,任务管理器窗口中缺少一些进程(csrss.exe、wininit.exe、services.exe ...)。
有人可以解释为什么吗?
先感谢您。
memory-leaks - 从 Process Explorer 解释 GPU 信息
我试图在我的 Sharpdx / DirectX 应用程序中寻找可能的内存泄漏。
我从流程资源管理器中获得以下信息,我不知道如何解释。
- 什么是专用 GPU 内存?
- 什么是系统 GPU 内存?
- 什么是提交的 GPU 内存?
.net - COMToCLRDispatchHelper 由于 GC 中的高 % Time 导致性能问题
我在托管的 .net 应用程序中遇到了性能问题。我正在使用 COM 与非托管库进行接口,在运行时我注意到在 Process Explorer 中我的 GC 时间百分比在大多数情况下都非常高,> 90%。
我使用了 VS 2012 内存分析,它表明我的大部分内存分配都在一个名为 COMToCLRDispatchHelper 的 .NET 方法中进行。基本上,我的应用程序分配的所有内存中超过 98% 都是通过这种方法完成的,我想知道可以做些什么来解决这个问题,因为这会降低我的应用程序性能。
在进一步调查中,我怀疑 GC 时间的高百分比是由非托管库经常通过具有如下签名的 COM 接口调用我的托管代码引起的:
我不太了解 MarshalAs 的工作原理,但我怀疑非托管代码分配了一个数组,然后将其复制到托管数组中,然后将其内容复制回非托管数组,托管数组被垃圾收集。
我无法控制非托管代码来尝试更改此接口。在实现此 Read 方法以缓解 GC 压力的托管代码中,我可以做些什么吗?或者也许以某种方式更改此方法的签名以减轻 GC 压力但仍满足此接口的非托管签名?
windows-services - 在进程资源管理器中创建完整的内存转储会减慢 Windows 服务的速度,而我正在尝试转储其内存?
或在 Windows 任务管理器中创建相同的内存转储。这些程序究竟是如何创建内存转储的也很有趣..提前谢谢!
windows - 线程命令在 WInDbg 中不起作用
尝试在 WinDbg 中执行基于线程的命令。安装程序是具有XP的VMWare,主机是Win 7。基于此,尝试调试应用程序挂起。但不能从中得到任何信息。对于简单的 tilda(~) 它给出了语法错误。为了执行这些命令,我需要做一些不同的设置吗?无论如何,这些“特殊”吗?因为我可以使用其他命令。
基本上我想让 WinDbg 让我监控线程的状态?例如等待响应、发送请求或类似的东西。