Articles of 过程

通过一个进程计算总磁盘I / O

我正在寻找一个工具,它将在一个进程结束后,通过一个进程转储总的磁盘I / O。 到目前为止,我的发现是: iotop =它实时显示每个进程的I / O,但不会在进程结束后给出总计。 iostat =它显示实时I / O,但不告诉过程 例如 ,我有一些使用PID ####在后台运行的进程。 在stream程结束后,我需要总共写入和读取该进程的总字节数。任何人都可以告诉我如何在给定进程PID的情况下提取这些信息。

我如何知道Linux进程正在等待什么?

我试图找出在Linux下正在debugging的应用程序中性能瓶颈的原因。 所涉及的各种进程似乎花费了大量的时间阻塞I / O请求,我想知道是否有人知道任何Linux技巧,让你明白为什么一个特定的进程被阻止/它正在等待什么资源? 例如在/proc有什么有用的东西?

自动杀死耗费太多内存的进程或在Linux上停止

我想要一个监视进程的“系统”,并在下列情况下终止进程: 该过程超出了一些内存要求 该过程在一段时间内不响应来自“系统”的消息 我认为这个“系统”可以像监测过程那样简单? 如何做到这一点的代码示例将是有用的。 我当然不反对这个问题的完全不同的解决scheme。

Windows中创build过程是什么?

我一直听说在Windows中创build一个新的进程是非常昂贵的。 但我找不到确切的数字。 有一个球场的周期数? 2GHz双核处理器有多less毫秒? 我用Python编写了一个testing程序,每个进程测量5ms,但是我不知道Python是多less额外的开销。 我猜的不多。

如何枚举进程中的所有窗口?

我需要捕获第三方进程的特定窗口。 我可以find主窗口句柄Process.MainWindowHandle,但我可以用来列出其他窗口? 我正在使用C#/ .NET

打开具有debugging权限和读/写内存的进程

简洁版本: 我试图打开一个具有debugging权限的进程句柄,并定义一个指针指向debugging对象的内存中的一个对象。 长版 在gradle的最后一年,我是一名计算机科学的大学生,他的任务是为下一代学生build立一个应用于教育目的的应用程序。 为什么我在这里寻求帮助,你可能会问? 那么,目标平台是Windows,我不幸的是没有任何有关WinAPI的知识… 好的,这是基本要求: 编程语言 :C ++ 平台 :Windows(7专业版) 使用IDE :Visual Studio 2012 没有额外的库,如果他们不是必要的,以减轻发展 什么将被使用的应用程序? 使用这个应用程序,学生将学习处理地址,在这种情况下是静态地址:debugging对象进程将有一些静态指针,这导致其他指针自己形成一个多维指针。 学生必须使用一些debugging技术(这不是我工作的一部分)find这些基地址,并尝试在这些指针的最后find这些值。 我的应用程序将由导师用来随机更改debugging对象过程中的值和/或结构。 一些search没有产生第一个答案:使用ReadProcessMemory和WriteProcessMemory可以轻松地更改另一个进程的内存中的值,而不需要获取debugging权限。 然而,我的导师想要的是能够定义指向debugging对象进程的内存空间的指针(比如unsigned int),并有效地保存我之前写的基址。 他们真的想要这个,我甚至不能说出来,所以我坚持最后这样做… 究竟应该工作? 那么,如果以下(伪)代码工作,我会完成我的任务: grantThisProcessDebugPrivileges(); openAnotherProcessWhileItsRunning("targetProcess.exe"); unsigned int * targetValue = (unsigned int*) 0xDE123F00; // or even myCustomClass * targetClass = (myCustomClass*) 0xDE123F00; 地址0xDE123F00位于targetProcess.exe的内存空间中。 我知道这是可能的,否则将不会有debugging器可以显示此信息。 我到目前为止(或尝试过…) 好的,问题是:我很困惑我是否必须在打开目标进程之前激活我的应用程序的debugging权限, 在打开目标进程之后执行,或者给目标进程赋予这些权限。 所以我在MSDN中find一个例子并试图实现它: BOOL SetPrivilege( HANDLE […]

Windows API将显示正在运行的进程

我想创build一个像小型任务pipe理器的工具。 我想显示所有正在运行的进程,cpu和内存使用情况。 有人可以告诉我相关的API,我可以用这个。 任何链接到相关的网页将不胜感激。 (我想转储的所有运行进程,CPU和内存的统计信息。)在此先感谢。

我可以在Windows平台上获得每个进程的L2caching未命中数吗?

我想计算每个进程的内存带宽。 任何人都可以告诉我如何获得每个进程的L2caching未命中。 谢谢慧

我可以通过任务pipe理器来处理我的Windows进程吗?

我有一个Windows C ++应用程序(app.exe)。 当应用程序closures时,我需要执行一些特定于我的应用程序的清理任务。 当此进程(app.exe)通过任务pipe理器终止时会发生什么情况。 假设应用程序仍然响应,我可以以某种方式处理我的app.exe中的这种情况? 我正在寻找类似于Linux中kill <pid> ,将SIGTERM信号发送到由pid指示的进程。 然后,我可以注册我自己的信号处理程序SIGTERM并执行清理。

获取已经运行的Windows进程控制台输出在命令提示符? 直接StreamReader来命令提示符

我正在尝试确定是否有方法在命令提示符下通过C#在Windows环境中获取已经运行的进程的控制台输出。 我已经通过shell看到了基于Linux系统的答案 ,也是一种检索Process对象的方法 。 虽然都没有提供一个解决scheme来获得过程的输出。 我的代码我现在find一个进程(MongodDB守护进程)这种方式 Process[] procs = Process.GetProcessesByName("mongod"); if (procs.Length > 0) { MongoProcess = procs[0]; Console.Out.WriteLine("Found mongod.exe, process id: " + MongoProcess.Id); } 我还发现了Process.StandardOutput属性 ,它提供了“一个StreamReader,可以用来读取应用程序的标准输出stream”。 有没有办法将这个StreamReaderinput引导到命令提示符输出? 我也知道我可以启动一个进程并显示命令提示符(进程输出),但这只是当进程“由我”启动时。 Process.Start(new ProcessStartInfo("notepad.exe") { CreateNoWindow = false }) 我也知道,我可以简单地从StreamReader读取并以我自己的方式显示输出,但我真的更喜欢只显示一个命令提示符。