From: x1 Date: 2005-11-11T11:20:02+09:00 Subject: Re: [SORTA OT] Getting CPU usage of a process Seems to be lots of win32ole stuff that's usefull here: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wmi_tasks__performance_monitoring.asp this seems tto work ok on a process name but.. not sure how to do it on an id.. wscript.exe test.vbs -------test.vbs------- strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") set PerfProcess = objWMIService.Get(_ "Win32_PerfFormattedData_PerfProc_Process.Name='Idle'") While (True) PerfProcess.Refresh_ Wscript.Echo PerfProcess.PercentProcessorTime Wscript.Sleep 1000 Wend --------/test.vbs-------- On 11/10/05, Joe Van Dyk wrote: > On 11/10/05, Joe Van Dyk wrote: > > On 11/10/05, Kero wrote: > > > > I'd like to be able to get the CPU usage of a particular process. > > > > What are my options for doing so from Ruby? > > > > > > > > I've found the libgtop ruby binding, and I could use that, but I would > > > > rather not bring in another dependency. This will run on Linux > > > > systems only. > > > > > > > > And would I want to use the elapsed real cpu time? Or the sum of the > > > > elapsed user and system cpu time? (and then I believe I divide that > > > > by the elapsed wall clock time) > > > > > > man proc, look for "/proc/[number]/stat" > > > It contains a set of times spent by the process and its children. > > > it also contains the starttime, so this should allow you to compute "Cpu > > > usage of the process". > > > > Thanks, I'm aware of /procproc. > > > > I want to be able to constantly keep the user updated on how much of > > the cpu the application is using. > > > > Would I take the sum of the elapsed user and system cpu time and > > divide that by the elapsed wall clock time to get the current cpu > > percentage? > > And one other question, does anyone know how I might do this on > Windows via Ruby? > >