{"id":12,"date":"2006-10-04T11:11:28","date_gmt":"2006-10-04T10:11:28","guid":{"rendered":"http:\/\/www.itwriting.com\/blog\/?p=12"},"modified":"2006-10-04T11:11:28","modified_gmt":"2006-10-04T10:11:28","slug":"times-reader-memory-shock","status":"publish","type":"post","link":"https:\/\/www.itwriting.com\/blog\/12-times-reader-memory-shock.html","title":{"rendered":"Times Reader memory shock"},"content":{"rendered":"<p>I&#8217;m an admirer of <a href=\"http:\/\/firstlook.nytimes.com\/?p=20\">Times Reader<\/a>; in fact I&#8217;ve become something of an addict. Then a discussion about .NET performance prompted me to check the memory usage:<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.itwriting.com\/images\/timesreadermem.gif\" \/><\/p>\n<p>At 92MB working set and 50MB private working set, this application uses an alarming amount of memory. I found this interesting as it&#8217;s an example of a real-world Windows Presentation Foundation application. WPF is great to work with, but if it catches on, how many concurrent WPF apps will we be able to run before our shiny Vista systems choke?<\/p>\n<p>Caveats: All three of Vista, WPF and Times Reader are in beta, so things could improve; then again all three are close to release, so this is a real concern. More research is needed.<\/p>\n<p>Of course it&#8217;s possible that Times Reader is just holding far too much data in RAM, though it is such a great app in other respects that it is hard to believe.<\/p>\n<p>Other points of interest: as you can see from the screenshot I have <a href=\"http:\/\/www.getpaint.net\/\">Paint.Net<\/a> running as well as another .NET app, <a href=\"http:\/\/www.codeplex.com\/Wiki\/View.aspx?ProjectName=guidanceExplorer\">Guidance Explorer<\/a>, both of which consume less than half the amount of memory. In fact, Paint.Net&#8217;s usage is not bad in this context, given its sophistication and the fact that image apps tend to be memory-hungry.<\/p>\n<p>I&#8217;ll have another look when the full releases are available.<\/p>\n<h4>Update<\/h4>\n<p>I investigated how much overhead WPF is introducing by comparing two trivial to-do list apps of identical functionality. One is XAML\/VB.NET; the other is Windows Forms. Both compiled to release builds in VS 2005. Here are the results:<\/p>\n<h5>XAML\/VB.NET<\/h5>\n<p>Working set: 30MB<br \/>\nPrivate working set: 11MB<br \/>\nCommit size: 44.5 MB<\/p>\n<h5>Windows Forms<\/h5>\n<p>Working set: 13.5MB<br \/>\nPrivate working set: 3MB<br \/>\nCommit size: 15MB<\/p>\n<p>So on the face of it, there <strong>is<\/strong> a substantial memory jump for WPF.<\/p>\n<p>Tags:<br \/>\n<a href=\"http:\/\/technorati.com\/tag\/wpf\" rel=\"tag\">wpf<\/a><br \/>\n<a href=\"http:\/\/technorati.com\/tag\/vista\" rel=\"tag\">vista<\/a><br \/>\n<a href=\"http:\/\/technorati.com\/tag\/performance\" rel=\"tag\">performance<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;m an admirer of Times Reader; in fact I&#8217;ve become something of an addict. Then a discussion about .NET performance prompted me to check the memory usage: At 92MB working set and 50MB private working set, this application uses an alarming amount of memory. I found this interesting as it&#8217;s an example of a real-world &hellip; <a href=\"https:\/\/www.itwriting.com\/blog\/12-times-reader-memory-shock.html\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Times Reader memory shock<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[80,97],"tags":[],"class_list":["post-12","post","type-post","status-publish","format-standard","hentry","category-software-development","category-windows"],"_links":{"self":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts\/12","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/comments?post=12"}],"version-history":[{"count":0,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts\/12\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/media?parent=12"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/categories?post=12"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/tags?post=12"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}