views:

112

answers:

3

The service was compile with no trace/debug constant and no debug info.

How would you inspect the memory usage of that windows services?

A: 

Download MemProfiler (14 day free trial) and attach to running windows Service (it's very easy to use: See the tutorials

RedGate's memory profiling tool also has a 14-day trial version

Mitch Wheat
+2  A: 

Check out ProcessMon and the the other SysInternals apps here. They give you a heap of information. Including garbage collection generations etc.

TreeUK
+1.excellent tools from SysInternals (now TechNet)
Mitch Wheat
A: 

All of the tools outlined above are excellent tools. If you have the have the budget for it, you would be hard to go wrong with either MemProfiler or RedGate's tool that Mitch mentioned. I've used both, though RedGates was a previous verison. I understand their latest version has really stepped it up a notch.

If you don't have the budget for it, then ProcessMon is usually the first tool you want to reach for when you suspect that you might have a memory leak. Highly recommend the suite of Sysinternals tools for troubleshooting.

While understanding how to read the data provided by ProcessMon will help you confirm that you have a memory leak, spending a little time learning to use WinDbg will help you identify what is leaking - though requires a bit more commitment.

All the tools mentioned, WinDbg, MemProfiler and RedGate, will allow you to inspect the memory of a service, or any other process. Not having the program sybmols available will make things harder for all the tools.

Not having symbols available is a 'sin' - if you own the service, rebuild with symbols. If you don't want to deploy them with the service, look into implementing Source Server and Symbol Server (highly recommend). If a vendor owns the service, harass them to provide a version with symbols.

Download Debugging Tools for Windows

Check out Tess Ferrandez Debugging Tutorials to get started with WinDbg.

John Robbins on Symbols

John Robbins on Source Server

Zach Bonham
it seem I need winDbg, I need to know where the memory is used. thanks
Fredou