سؤال

I'm looking at building some unit tests to ascertain if resources are leaking (or not) using the unit testing framework that comes with Visual Studio.

At present, I'm evaluating the latest version of ANTS Profiler, but I can't quite work out if it allows me to force a snapshot from code (so that I can take a snapshot, run a unit test a few hundred times, force a garbage collection, and take another snapshot, and save the results out for later analysis).

Is this possible to do with ANTS/Visual Studio or should I be exploring options with other profilers?

هل كانت مفيدة؟

المحلول

JetBrains dotTrace/dotMemory and ReSharper have better integration on unit testing and profiling.

http://www.jetbrains.com/profiler/index.html

Not sure if ANTS has such integration, but you can consult Red Gate presales, right?

http://www.red-gate.com/about/all_testimonials.htm

They do expect you to call them for more information.

نصائح أخرى

Have you seen dotmemory from JetBrains?

dotMemory Unit is a unit testing framework which allows you to write tests that check your code for all kinds of memory issues.

For example:

When you need to simply evaluate the amount of memory allocated in a test, you can use the AssertTraffic attribute. This flexible attribute allows you to filter traffic data by object type, interface, or namespace.

I use ANTS profiler, and what I find most convenient is to attach the profiler to the running test process, that may be different depending on what testing framework you are using. For example, I use Resharper and the process image name is called something like:

JetBrains.ReSharper.TaskRunner.CLR...

For future readers, worth mentioning that you can force snapshots from within your code with ANTS Memory Profiler. You need to reference

RedGate.MemoryProfiler.Snapshot.dll

which is included in the ANTS install directory. You can then take a snapshot by calling

RedGate.MemoryProfiler.Snapshot.TakeSnapshot("Optional snapshot name")

Full details here.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top