c# - How do i get a specific process name memory usage? -
i tried code:
public static string getprocessmemoryusage(string processname) { while (true) { performancecounter performancecounter = new performancecounter(); performancecounter.categoryname = "process"; performancecounter.countername = "working set"; performancecounter.instancename = process.getcurrentprocess().processname; processname = ((uint)performancecounter.nextvalue() / 1024).tostring(processname); return processname; } } if process name example: bfbc2game method getprocessmemoryusage return me name: bfbc2game want return me memory usage value number in task manager in windows example when run task manager see on bfbc2game: 78% , 198.5mb memory usage.
thats want in returned string processname: 78% , 198.5mb that. , iwll update time in loop. same in task manager.
use
var workingset = (uint)performancecounter.nextvalue() / 1024; return workingset.tostring(); when use uint32.tostring(processname) process name treated format string number. so, have format string "notepad.exe". not have placeholders numbers, result equals format string value, i.e. process name.
note - assigning memory usage value processname variable very confusing. i'd suggest return uint value method:
public static uint getprocessmemoryusageinkilobytes(string processname) { var performancecounter = new performancecounter("process", "working set", processname); return (uint)performancecounter.nextvalue() / 1024; } or use process.workingset64 amount of memory allocated process.
Comments
Post a Comment