<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Van Kichline's WebLog : VWD Performance</title><link>http://blogs.msdn.com/vank/archive/tags/VWD+Performance/default.aspx</link><description>Tags: VWD Performance</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Code Complete</title><link>http://blogs.msdn.com/vank/archive/2004/08/28/222137.aspx</link><pubDate>Sat, 28 Aug 2004 21:08:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:222137</guid><dc:creator>vank</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/vank/comments/222137.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vank/commentrss.aspx?PostID=222137</wfw:commentRss><description>&lt;p&gt;After an unexpectedly long process, I'm finally code complete on the Beta 2 VWD performance suites.&amp;nbsp; We identified our performance needs a couple of months ago, set our goals early in August, and now we've finally got the infrastructure in place to monitor these test cases from here to Beta 2 release, and on to RTM.&lt;/p&gt; &lt;p&gt;Monday I'll be busy getting the 486 files involved code reviewed (twice) and checked in.&amp;nbsp; I'm glad to have time to take a break first.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=222137" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vank/archive/tags/VWD+Performance/default.aspx">VWD Performance</category></item><item><title>Suite Frameworks</title><link>http://blogs.msdn.com/vank/archive/2004/08/25/220738.aspx</link><pubDate>Thu, 26 Aug 2004 05:52:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:220738</guid><dc:creator>vank</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/vank/comments/220738.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vank/commentrss.aspx?PostID=220738</wfw:commentRss><description>&lt;p&gt;It's been a busy week of writing test cases.&lt;/p&gt; &lt;p&gt;We have so many test suite frameworks I can't believe it.&amp;nbsp; Our checkin suites are written against one framework (but other teams use other frameworks.)&amp;nbsp; Our QA tests use another framework, and the perf test cases I'm writing use yet another framework.&amp;nbsp; None are complete or robust; if you use a new function of feature of an existing method you better check the source code for the infamous "TBD."&amp;nbsp; For example, I needed to open a local host web instead of a file system web.&amp;nbsp; The function existed in the header file, but not the .cpp file.&amp;nbsp; I fleshed it out, but another function which pushed the appropriate button for local host as opposed to file system button was implemented only as TBD.&lt;/p&gt; &lt;p&gt;My last test case involves modifying an aspx file and viewing it in the browser.&amp;nbsp; How do you terminate the test?&amp;nbsp; We usually use CodeMarkers, which are simply window messages with a few tests to see if they're enabled or not, to terminate timings.&amp;nbsp; The alternative was to poll and search, so I decided to write an ActiveX control which fires a CodeMarker when rendered.&amp;nbsp; But it turns out that XPSP2 may disable displaying ActiveX controls!&amp;nbsp; You have to click on an "action bar" to enable the control to be loaded.&amp;nbsp; But I've found a way to save the registry setting, change it, and restore it after the test, as long as the test is running with admin privileges.&lt;/p&gt; &lt;p&gt;I'm hoping to finish up five test cases tomorrow, after six weeks of committee meetings defining the test cases, experimentation to set performance goals, and wresting with the test framework and security precautions to implement the tests.&amp;nbsp; Party time!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=220738" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vank/archive/tags/VWD+Performance/default.aspx">VWD Performance</category></item><item><title>Other things that have gotten slower by design</title><link>http://blogs.msdn.com/vank/archive/2004/08/19/217148.aspx</link><pubDate>Thu, 19 Aug 2004 16:04:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:217148</guid><dc:creator>vank</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/vank/comments/217148.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vank/commentrss.aspx?PostID=217148</wfw:commentRss><description>&lt;p&gt;Another feature of Visual Web Developer which is certain to seem slower than VS 2002 or 2003 is the opening of "miscellaneous files." These are files which (should) sport Intellisense but are not part of a web or a project. In earlier versions of VS these simply didn't have Intellisense hooked up.&amp;nbsp; So, for example, if you typed "Response.", nothing would happen.&lt;/p&gt; &lt;p&gt;VWD 2005 creates a hidden, "miscellaneous" project to wrap around the miscellaneous file.&amp;nbsp;It searches upward, looking for an actual web the file may be a part of, looking for a /Code folder, web.config file, or other clues (I can dig these up and enumerate them if anyone's vitally interested) and figures out where to "root" the web. If a web is discovered and it's not from a previous version of VS, the project system does what it would for a normal web; /Code Intellisense is generated, global.asax is honored, everything.&lt;/p&gt; &lt;p&gt;If you open two miscellaneous files, you may get one or two miscellaneous projects.&amp;nbsp; If you opened c:\foo\defalut.aspx and c:\foo\info.aspx they'd both share the same hidden project.&amp;nbsp; If you opened c:\foo\aspx and c:\bar\data.aspx there'd be two different miscellaneous projects. Most of the spin-up is asynchronous but the memory footprint of the Intellisense and type resolution services is noticeable.&lt;/p&gt; &lt;p&gt;Has anyone out there run into problems with this? Is double-clicking on a file on the desktop to make a tweak too slow? Do you get unexpected Intellisense (or none at all) with these types of files sometimes? Does the Intellisense make you happy to leave notepad behind at last for this type of operation, or does the startup time make you right-click and "Open With..."?&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=217148" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vank/archive/tags/VWD+Performance/default.aspx">VWD Performance</category></item><item><title>What's Different About the VWD Build System?</title><link>http://blogs.msdn.com/vank/archive/2004/08/18/216738.aspx</link><pubDate>Wed, 18 Aug 2004 21:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:216738</guid><dc:creator>vank</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/vank/comments/216738.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vank/commentrss.aspx?PostID=216738</wfw:commentRss><description>&lt;p&gt;There have already been several posts about build being slower in VWD than in Visual Studio 2003.&amp;nbsp; This is true.&lt;/p&gt; &lt;p&gt;With Visual Studio 7.0 and 2003 there was a huge gulf between the SDK version of examples, starter kits, etc., and the Visual Studio versions.&amp;nbsp; The organization of the source code differed mostly in single-file SDK versions and code-behind VS versions.&amp;nbsp; But there was an even more substantial difference in deployed webs.&amp;nbsp; SDK versions seemed to simply and&amp;nbsp;magically compile themselves, while the VS versions needed to be built and prop'd to the website.&amp;nbsp; One big assembly was generated in the /bin directory.&amp;nbsp; The SDK versions could be modified right on the web server using only notepad; the VS versions had to be modified in the VS Solution, built, and prop'd.&amp;nbsp; Strangest of all, you could make some changes in the running VS webs using notepad, like modifying some text on an aspx&amp;nbsp;page, and it would show up the next time you loaded the page in your browser, but other changes (like modifying the code) simply wouldn't "take."&lt;/p&gt; &lt;p&gt;This really didn't delight everybody.&amp;nbsp; Modifying a sample meant fixing the C# &amp;amp; VB version for both the SDK &amp;amp; VS versions.&amp;nbsp; It was difficult to exchange code.&amp;nbsp; It was confusing.&amp;nbsp; It looked broken.&amp;nbsp; And having to resurrect a project to make a tweak and replace every executable bit to implement a one-line change was simply not a decent model for many kinds of web development.&lt;/p&gt; &lt;p&gt;Early in 8.0 we decided to rip the extensive build system out of the web project system, and instead rely on the managed Client Build Manager, an ASP.Net class wrapping the Build Manager, the ASP.Net piece that compiled the SDK-style webs.&amp;nbsp; The advantages seemed pretty significant: excellent fidelity between development and deployment code generation, any-language support, no-solution-file web projects (my favorite) and simplicity.&amp;nbsp; What the build system used to do was to spin up its own compilers and keep most code built to the state just before writing the actual assembly, so doing a build actually meant just emitting the assembly file.&lt;/p&gt; &lt;p&gt;Now we rely on the Build Manager itself, which isn't really aware that Visual Studio is even running.&amp;nbsp; We've still got our own compilers building the symbol tables used by Intellisense, but they are not used to emit the executable code. And thus we incur some substantial costs in latency and working set.&lt;/p&gt; &lt;p&gt;Was it a good decision?&amp;nbsp; Only time and your comments will tell.&amp;nbsp; The new web project model is a delight to work with; all you have to do is select a folder and it behaves like a project; no files are added to it at all.&amp;nbsp;Could we have accomplished this without duplicating compilation costs?&amp;nbsp;Will version independence be a substantial win going forward? Will the cumulative compilation hit make old and bitter people out of us all?&amp;nbsp; I'm interested in your feedback.&lt;/p&gt; &lt;p&gt;Here's a hint. For "consistency" we currently do a full build internally when you hit F5 before we request the target page, which will trigger a Build Manager build.&amp;nbsp; If the delay is bothering you, try this:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Right click on your project node in the Solution Explorer.&lt;/li&gt; &lt;li&gt;Select Preferences.&lt;/li&gt; &lt;li&gt;Select the Build tab.&lt;/li&gt; &lt;li&gt;Uncheck "Build web site as part of solution."&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Do this per web; there's no global setting.&lt;br /&gt;If this makes a noticeable difference in your day-to-day experience, let me know.&lt;br /&gt;Do you feel that this setting should be off by default?&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=216738" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vank/archive/tags/VWD+Performance/default.aspx">VWD Performance</category></item><item><title>Visual Web Developer (Whidbey) Performance</title><link>http://blogs.msdn.com/vank/archive/2004/08/17/215808.aspx</link><pubDate>Tue, 17 Aug 2004 16:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:215808</guid><dc:creator>vank</dc:creator><slash:comments>13</slash:comments><comments>http://blogs.msdn.com/vank/comments/215808.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vank/commentrss.aspx?PostID=215808</wfw:commentRss><description>&lt;p&gt;Hello!&amp;nbsp; I've been a dev at Microsoft for eight years now, and have been working on Visual Studio for the last five or six of them.&lt;br /&gt;Recently I've changed roles.&amp;nbsp; I've always worked on the web development part of Visual Studio (from Visual InterDev through Visual Web Developer) but I'm moving off the feature area and into performance.&lt;/p&gt; &lt;p&gt;Until recently this responsibility was spread over four people on our team, and&amp;nbsp;it was one of many responsibilities for each of them.&amp;nbsp; Now virtually all the performance testing, monitoring and investigation are my responsibility.&amp;nbsp; I'm new at this; I've had a few narrow performance responsibilities and a little training in the past, but I've got a huge amount to learn and a thousand tasks to complete.&amp;nbsp; It's like heaven.&amp;nbsp; It's hard to beat getting paid to learn new skills&lt;span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;, particularly interesting ones&lt;/span&gt;.&amp;nbsp; My old friend John Pence and I used to say "Always get paid for learning."&amp;nbsp; It was the company slogan of MacMan, Inc.&lt;/p&gt; &lt;p&gt;Let me clarify my role: my responsibilities are specific to Visual Web Developer, the development environment.&amp;nbsp; If you've downloaded VWD Express then the Project System (represented by the Solution Explorer window and a vast expanse of invisible plumbing behind it) and the ASPX document windows cover a lot of the area I'm primarily concerned with, along with a few additional areas which are harder to visualize; the Cassini-based web server which starts up when you press F5, the Build command, Publishing, Copy Web, the acts of opening and closing web sites, and basically any function which pertains to&amp;nbsp;the website as a whole or the web pages within that site.&amp;nbsp; Intellisense hookup, too, although the Intellisense itself is implemented by language teams.&amp;nbsp; The Shell is the framework of Visual Studio that’s wrapped around our package; it’s the part that’s the same for C# Express and VWD Express.&lt;/p&gt; &lt;p&gt;I'm not involved with performance of the Shell, the ASP.Net runtime, the .Net class library, C#, VB, or SQL, but I am getting to know most of these people, so if you have comments on any of these areas I might be able to pass them on but probably won't be able to follow up on them unless they're major issues which impact the entire product.&amp;nbsp; If you're a Visual Web Developer beta user, I'd love to hear about your performance-related experiences with the beta.&lt;/p&gt; &lt;p&gt;For you precious beta testers (I am one of you) I've got some questions.&amp;nbsp; Please let me know:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Have you used other Visual Studio products for web development before?&amp;nbsp; VID, VS7, VS7.1?&amp;nbsp; How does VWD stack up performance-wise? &lt;li&gt;How much RAM are you using?&amp;nbsp; Are you memory bound?&amp;nbsp; What do you think the minimum RAM requirement should be? &lt;li&gt;Have you run into limits where performance breaks down?&amp;nbsp; Say, one or two web forms are OK, but once you hit 317... &lt;li&gt;Are there spots where you reach for the reset button, thinking the system is hung?&amp;nbsp; Where are those spots? &lt;li&gt;Most important (if you have one of these please drop what you're doing and post a reply) have you ever hit a painfully long pause right in the middle of a thought,&amp;nbsp;that is,&amp;nbsp;have you lost your train of thought while your hard disk flashes and you CPU moans?&amp;nbsp; Where was that point?&amp;nbsp; What do I need to know to reproduce that experience?&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;If you've got performance complaints with Visual Web Developer, you've found the right guy to notify.&amp;nbsp; I can't guarantee I can solve every problem of course, but I can get your problem areas on the map.&amp;nbsp; I can make sure test cases cover them.&amp;nbsp; I can assure that fixing them or shipping them becomes a conscious decision.&amp;nbsp; I know it's not always easy to tell, but these decisions aren't made lightly.&amp;nbsp; If I don't hear from our users, my focus will be directed solely by my best guesses and suggestions of our team and division.&amp;nbsp; Your input could make a big difference in the product we ship.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=215808" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vank/archive/tags/VWD+Performance/default.aspx">VWD Performance</category></item></channel></rss>