4

Is there any tool that draws a graphic visualization of a process' memory?

I'd like a graph showing the percentage of pages in physical memory and in the page file.

chmeee
  • 7,270
  • 3
  • 29
  • 43
Luca Martinetti
  • 195
  • 2
  • 11

7 Answers7

11

Process Explorer has several visualization options for both individual processes and the system as a whole.

Richard Slater
  • 3,228
  • 2
  • 28
  • 42
  • playing with Process Explorer doesn't show me the graphic visualization of an individual process... it shows system level graphs, however, and these are quite nice. – ericslaw Jun 30 '09 at 17:05
  • There are limited graphical displays for a process: 1. Open Process Explorer 2. Right click -> properties on a process 3. Click the "Performance Graph" tab Shows "CPU Usage", "Private Bytes" and "I/O Bytes" for the process. In this case "Private Bytes" is the most useful for Luca as it represents the number of Virtual Memory bytes allocated for private use by this process. – Richard Slater Jun 30 '09 at 17:32
  • +1 for pointing out the individual graph visualization.... now if I could just get that for every process to find why my machine is swapping it's brains out every morning I'd be ok. – ericslaw Jul 02 '09 at 20:02
4

You can try:

You'll likely need to get the Windows debugging tools in order for your tool of choice to hook into your process.

squillman
  • 37,618
  • 10
  • 90
  • 145
3

I would use pslist, specify the pid I was interested in, and grep for the virtual memory and working set. I would then pipe to an output file and plot it using something like graphviz (or excel if you want it really quick and dirty). This would happen in a loop.

Sounds like alot, but its only a few minutes of thinking and scripting.

C:\bin>pslist /?                                                                                                   1

pslist v1.28 - Sysinternals PsList
Copyright ⌐ 2000-2004 Mark Russinovich
Sysinternals

Usage: C:\bin\pslist.EXE [-d][-m][-x][-t][-s [n] [-r n] [\\computer [-u username][-p password][name|pid]
   -d          Show thread detail.
   -m          Show memory detail.
   -x          Show processes, memory information and threads.
   -t          Show process tree.
   -s [n]      Run in task-manager mode, for optional seconds specified.
               Press Escape to abort.
   -r n        Task-manager mode refresh rate in seconds (default is 1).
   \\computer  Specifies remote computer.
   -u          Optional user name for remote login.
   -p          Optional password for remote login. If you don't present
               on the command line pslist will prompt you for it if necessary.
   name        Show information about processes that begin with the name
               specified.
   -e          Exact match the process name.
   pid         Show information about specified process.

All memory values are displayed in KB.
Abbreviation key:
   Pri         Priority
   Thd         Number of Threads
   Hnd         Number of Handles
   VM          Virtual Memory
   WS          Working Set
   Priv        Private Virtual Memory
   Priv Pk     Private Virtual Memory Peak
   Faults      Page Faults
   NonP        Non-Paged Pool
   Page        Paged Pool
   Cswtch      Context Switches`
matt
  • 1,112
  • 1
  • 8
  • 18
3

I use VMMAP for this very purpose.

It's a recent tool made by the Sysinternals team that brought us ProcessExplorer that was suggested in a precedent post.

Steve Schnepp
  • 2,222
  • 3
  • 21
  • 27
2

Munin is what you need for Unix-like operating systems. Actually, Munin is great for graphing anything for which you can collect numbers. If you could get one to run a TCP server, it could graph the temperature in your refrigerator.

Ernie
  • 5,324
  • 6
  • 30
  • 37
2

Check out Perfmon. It's a great performance monitoring tool that lets you graphically monitor nearly any aspect of a running program.

Kevin Kibler
  • 121
  • 3
1

Using Process Explorer, right-click a process and use the "Properties..." menu. In the "Performance Graph" tab you can see the memory, io and cpu usage of an individual process.

Evgeny
  • 589
  • 5
  • 10