New Memory Usage Tool for WPF and Win32 Applications

New Memory Usage Tool for WPF and Win32 Applications

Rate This
  • Comments 22

In Visual Studio 2013 we added a tool in the performance and diagnostics hub to enable you to analyze memory usage for Windows Store apps built using XAML. Since last fall, we’ve gotten requests to support WPF and Win32 apps. Today we’re happy to share the progress we’ve made on these requests by enabling WPF and Win32 app support in last week’s Visual Studio 2013 Update 3 CTP 2 release. While the current support is limited to Windows 8.1 and .NET 4.0, we feel this is a good step in the right direction, and are exploring further support going forward. In addition, we took this opportunity to add some awesome features, such as the ability to force a garbage collection and to see what modules are responsible for memory allocation. This post will briefly highlight these improvements.

Force GC

Focus on objects that are important by explicitly forcing a garbage collection in your application to get rid of short-lived objects and objects in the Finalizer queue before taking a snapshot.

Start Hub

Copy Multiple Rows

No more copying data row by row. Copy and paste formatted content from multiple rows in any data grid in the heap analysis views using standard gestures like CTRL + Click.

Copy Paste

Module Column

View the module from which a Type or a Stack Frame originated in the new Module column in the details views.

Module Column

Faster native heap analysis

Native heap analysis completes faster than ever. We delay load symbols for non-user assemblies until you explicitly turn off Just My Code. We have seen upwards of a 10X improvement in load times for large session files.

Conclusion

For further reading, check out this post by Adam Welch for a sneak peek at some more new improvements to the Memory Usage Tool in Visual Studio “14” CTP. We are interested in knowing more about what you think about these experiences and what you would like to see in the Performance and Diagnostics hub going forward. Please send us your feedback through replies to this post, Connect bugs, User Voice requests, the MSDN diagnostics forum or the Send a Smile button inside Visual Studio.

 

image Author: Harikrishna Menon, Program manager, Visual Studio Client Tools Team

Hari is a Program Manager with Microsoft and works on the Xaml Tools Team in Visual Studio. He has been with Microsoft for over 6 years and has worked on a variety of products built on server-side and client-side technologies. He owns the Memory Profiler feature and is responsible for other features like the Behaviors SDK and the XAML editor.
Leave a Comment
  • Please add 2 and 3 and type the answer here:
  • Post
  • This is a good first step but any WPF enhancement that doesn't support Windows 7 has very limited appeal.

  • This feature is great, but mentioning that this was practically done would have been nice during the WPF survey so I could have saved those points/imaginary dollars for other features.

  • Is VS 2012 going to get at least some of the features added to 2013?

    Enterprise customers like us have production systems developed in VS 2010, 2012 and 2013.   The 5-8 year expected production life cycle of our enterprise applications and the cost of a VS version upgrade means they are only updated to a new VS version once every 2.5 - 3 years.  

    It's like taking your car to change the oil every 3,000 miles and having to overhaul the transmission every 3,000 miles as well.

  • @Microsoft, besides "VM in Azure" (blogs.msdn.com/.../visual-studio-14-ctp-now-available.aspx), next time can you guys create a VM with CTP version installed, so people can just download and test it out right off the bat? Or better create a Vagrant "box" file docs.vagrantup.com/.../package.html (and docs.vagrantup.com/.../boxes.html) so we can use CLI to launch VM! Since Microsoft OpenTech has worked with them to bring Hyper-V support docs.vagrantup.com/.../index.html. Many folks would appreciate it! Thank you!

    Vagrant is really snappier and easier way to manage multiple development environment on single terminal (its comparable to "Chef").

  • @Microsoft, besides "VM in Azure" (blogs.msdn.com/b/visualstudio/archive/2014/06/03/visual-studio-14-ctp-now-available.aspx), next time can you guys create a VM with CTP version installed, so people can just download and test it out right off the bat? Or better create a Vagrant "box" file docs.vagrantup.com/.../package.html (and docs.vagrantup.com/.../boxes.html) so we can use CLI to launch VM! Since Microsoft OpenTech has worked with them to bring Hyper-V support docs.vagrantup.com/.../index.html. Many folks would appreciate it! Thank you!

    Vagrant is really snappier and easier way to manage multiple development environment on single terminal (its comparable to "Chef").

  • If you need robust memory usage support for .NET apps of most types, I can heartily recommend SciTech's .NET Memory Profiler, which I've been using for years. (http://memprofiler.com/). It's got it all and is very mature.

    Greg

  • Wonderful - thank you for some more WPF tools! This is exactly what I need now to figure out why my MeshGeometry3Ds are being held in memory. While we still need to support WPF running on Windows 7 for a very long time, I'm happily developing on Windows 8, so this will be a great help.

  • Microsoft have just shown they will not safeguard your source code investment. Microsoft's Paul Yuknewicz has refused to add the same modifications to the VB6 programming language that have already been added to VBA, despite the languages being identical. Yuknewicz spuriously states it is "not possible". Yet when asked to open source VB6 and let the community do these changes, Yuknewicz states it is "not feasible" to open source VB6.

    visualstudio.uservoice.com/.../3440221-bring-back-classic-visual-basic-an-improved-versi

  • Did I get it right that only .NET 4.0 is supported ? Why not .NET 4.5.2 ?

  • @ Jesse: Thanks for your feedback, as mentioned in the blog we are looking into adding support for more platform and OS'es in the future.

  • @JesperTreetop: Thanks for your feedback JesperTreetop, we wanted to make sure that we had a credible and performant experience for Win32 and WPF applications before publicly announcing this .We took the extra couple of months to make sure that we got this right.

  • @Peter: Thanks for your feedback around the need for a VM with CTP preinstalled for testing purposes. Will definitely forward the feedback to the right folks in our team.

  • @Govert van Drimmelen : Hoping to get a lot of feedback from you! Will definitely look into adding support for more OS'es and platforms in the future.

  • @James Portelli : We support all framework versions starting from .NET 4.0.

    .NET 4.5.1 and 4.5.2 and in-place installs over .NET 4.0. Hope that answered your question.

  • @ Peter: We do have the Dev 14 CTP in the Azure VM gallery now

    blogs.msdn.com/.../visual-studio-14-ctp-now-available-in-the-virtual-machine-azure-gallery.aspx

Page 1 of 2 (22 items) 12