<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">SilverLite</title><subtitle type="html" /><id>http://blogs.msdn.com/seema/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/seema/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/seema/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2007-10-02T13:11:00Z</updated><entry><title>Tips for creating massive amounts of shapes</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/seema/archive/2009/05/28/tips-for-creating-massive-amounts-of-shapes.aspx" /><id>http://blogs.msdn.com/seema/archive/2009/05/28/tips-for-creating-massive-amounts-of-shapes.aspx</id><published>2009-05-28T20:10:00Z</published><updated>2009-05-28T20:10:00Z</updated><content type="html">&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: #993366"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;I am often asked how to reduce the creation time for a massive number of shapes. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: #993366"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: #993366"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Try a few things:&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraph&gt;&lt;SPAN style="COLOR: #993366; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3 face=Calibri&gt;1)&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #993366"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Use XamlReader.Load when you can (with the mini-language), which allows you to use the native parser and not managed code to create new shapes&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraph&gt;&lt;SPAN style="COLOR: #993366; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3 face=Calibri&gt;2)&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #993366"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Use the mini-language for Paths or lines (whether using Xamlreader or C#) – both Silverlight and WPF optimize the mini-language internally, in different ways. When the mini-language is used, Silverlight does not create managed object for each PathFigure, Point etc– which saves creation time and space:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.5in" class=MsoListParagraph&gt;&lt;SPAN style="COLOR: #993366"&gt;&lt;?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /&gt;&lt;v:shapetype id=_x0000_t75 stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"&gt;&lt;v:stroke joinstyle="miter"&gt;&lt;/v:stroke&gt;&lt;v:formulas&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"&gt;&lt;/v:path&gt;&lt;o:lock aspectratio="t" v:ext="edit"&gt;&lt;/o:lock&gt;&lt;/v:shapetype&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.5in" class=MsoListParagraph&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/cc189041(VS.95).aspx" mce_href="http://msdn.microsoft.com/en-us/library/cc189041(VS.95).aspx"&gt;&lt;FONT color=#0000ff size=3 face=Calibri&gt;http://msdn.microsoft.com/en-us/library/cc189041(VS.95).aspx&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.5in" class=MsoListParagraph&gt;&lt;SPAN style="COLOR: #993366"&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraph&gt;&lt;SPAN style="COLOR: #993366; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3 face=Calibri&gt;3)&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #993366"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Switch to Bitmaps if appropriate. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="COLOR: #993366"&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraph&gt;&lt;SPAN style="COLOR: #993366; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3 face=Calibri&gt;4)&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT size=3 face=Calibri&gt;Prototype! Prototype! Prototype! Don't write everything and realize that SL can't generate 100,000 managed objects every 10msec. =)&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraph&gt;&lt;SPAN style="COLOR: #993366"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: #993366"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Generally, for drawing massive number of shapes, you want to reduce the amount of time spent in managed creation time.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: #993366"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;-Seema&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9648034" width="1" height="1"&gt;</content><author><name>seemar</name><uri>http://blogs.msdn.com/members/seemar.aspx</uri></author></entry><entry><title>Video of "Deep Dive into SL Graphics" is posted</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/seema/archive/2009/03/27/video-of-deep-dive-into-sl-graphics-is-posted.aspx" /><id>http://blogs.msdn.com/seema/archive/2009/03/27/video-of-deep-dive-into-sl-graphics-is-posted.aspx</id><published>2009-03-28T07:30:00Z</published><updated>2009-03-28T07:30:00Z</updated><content type="html">&lt;P&gt;The video for my talk on graphics is now posted, with slides: &lt;/P&gt;
&lt;P&gt;&lt;A href="http://videos.visitmix.com/MIX09/T17F"&gt;http://videos.visitmix.com/MIX09/T17F&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Demos:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://cid-05611cbd425431f5.skydrive.live.com/self.aspx/Public/MixInvertShaderApp.zip" target=_blank mce_href="http://cid-05611cbd425431f5.skydrive.live.com/self.aspx/Public/MixInvertShaderApp.zip"&gt;Demo project for building an invert shader&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://cid-05611cbd425431f5.skydrive.live.com/self.aspx/Public/MixCloudShaderApp.zip" target=_blank mce_href="http://cid-05611cbd425431f5.skydrive.live.com/self.aspx/Public/MixCloudShaderApp.zip"&gt;Demo project for using a transition effect&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Note that I deleted the original images from the project -- so, before pressing F5, replace trees.jpg and spring.jpg with actual images. &lt;BR&gt;I'll post detailed steps shortly, but this should get most of you unblocked. Make sure to install the Pixel Shader Build Task before using (see below)&lt;/P&gt;
&lt;P&gt;Pixel Shader Resources:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;WPF's &lt;A href="http://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=14962" target=_blank mce_href="http://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=14962"&gt;Build Task &lt;/A&gt;for building Pixel Shaders in a VS template&amp;nbsp;-- read the readme!&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/greg_schechter" target=_blank mce_href="http://blogs.msdn.com/greg_schechter"&gt;Greg Schechter&lt;/A&gt;'s great &lt;A href="http://blogs.msdn.com/greg_schechter/archive/2008/05/09/a-series-on-gpu-based-effects-for-wpf.aspx" target=_blank mce_href="http://blogs.msdn.com/greg_schechter/archive/2008/05/09/a-series-on-gpu-based-effects-for-wpf.aspx"&gt;series of posts &lt;/A&gt;on building Pixel Shaders for WPF&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.codeplex.com/wpffx" target=_blank mce_href="http://www.codeplex.com/wpffx"&gt;WPF Effects Library&lt;/A&gt;, which can also be used within Silverlight&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Enjoy!&lt;BR&gt;Seema&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9515557" width="1" height="1"&gt;</content><author><name>seemar</name><uri>http://blogs.msdn.com/members/seemar.aspx</uri></author></entry><entry><title>Summary of the 20min perf talk</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/seema/archive/2009/03/24/summary-of-the-20min-perf-talk.aspx" /><id>http://blogs.msdn.com/seema/archive/2009/03/24/summary-of-the-20min-perf-talk.aspx</id><published>2009-03-25T04:26:00Z</published><updated>2009-03-25T04:26:00Z</updated><content type="html">&lt;P&gt;The 20 minute talk is posted &lt;A class="" href="http://videos.visitmix.com/MIX09/T67M" target=_blank mce_href="http://videos.visitmix.com/MIX09/T67M"&gt;here&lt;/A&gt;. I spoke till the speaker timer started to flash at me (giant flashing clock), which resulted in having no time for a forum Q&amp;amp;A, but feel free to post your questions/comments down below. I'm always curious about what perf issues people are hitting.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Understanding perf issues&amp;nbsp;gives me an idea of how people are stretching the platform beyond our key scenarios, and which APIs/codepaths we should improve in the next version.&lt;/P&gt;
&lt;P&gt;Tim Sneath wrote an excellent &lt;A class="" href="http://blogs.msdn.com/tims/archive/2009/03/24/building-an-optimized-graphics-intensive-silverlight-application.aspx" target=_blank mce_href="http://blogs.msdn.com/tims/archive/2009/03/24/building-an-optimized-graphics-intensive-silverlight-application.aspx"&gt;writeup&lt;/A&gt; of my 20min mix session on writing an optimized SL app. I almost wish that I had his post to read off as a script! &lt;/P&gt;
&lt;P&gt;Talk Video &amp;amp; PPT: &lt;A href="http://videos.visitmix.com/MIX09/T67M"&gt;http://videos.visitmix.com/MIX09/T67M&lt;/A&gt; &lt;BR&gt;Tim's great summary: &lt;A href="http://blogs.msdn.com/tims/archive/2009/03/24/building-an-optimized-graphics-intensive-silverlight-application.aspx"&gt;http://blogs.msdn.com/tims/archive/2009/03/24/building-an-optimized-graphics-intensive-silverlight-application.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Cheers, Seema&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9506018" width="1" height="1"&gt;</content><author><name>seemar</name><uri>http://blogs.msdn.com/members/seemar.aspx</uri></author><category term="slperf" scheme="http://blogs.msdn.com/seema/archive/tags/slperf/default.aspx" /><category term="mix09" scheme="http://blogs.msdn.com/seema/archive/tags/mix09/default.aspx" /></entry><entry><title>See you in Vegas!</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/seema/archive/2009/03/16/see-you-in-vegas.aspx" /><id>http://blogs.msdn.com/seema/archive/2009/03/16/see-you-in-vegas.aspx</id><published>2009-03-17T00:22:00Z</published><updated>2009-03-17T00:22:00Z</updated><content type="html">&lt;P&gt;Headed to Vegas tomorrow for Mix09. If you join us at The Venetian, either in person or online, check out my two talks:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Deep Dive into Silverlight Graphics&lt;/STRONG&gt;, Thurs at 10:30-11:45am&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Building an Optimized, Graphics-Intensive Silverlight Application&lt;/STRONG&gt;, Fri at 9:00 - 9:30am&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Karen Corby has a great list of Silverlight-related sessions &lt;A class="" href="http://scorbs.com/2009/03/10/mix09-so-divine/" target=_blank mce_href="http://scorbs.com/2009/03/10/mix09-so-divine/"&gt;here&lt;/A&gt;, and you can build your session schedule &lt;A class="" href="https://content.visitmix.com/2009/sessions/" target=_blank mce_href="https://content.visitmix.com/2009/sessions/"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Cheers!&lt;BR&gt;Seema&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9482009" width="1" height="1"&gt;</content><author><name>seemar</name><uri>http://blogs.msdn.com/members/seemar.aspx</uri></author><category term="mix09" scheme="http://blogs.msdn.com/seema/archive/tags/mix09/default.aspx" /></entry><entry><title>Published the Source code for Silverlight 2 Runtime &amp; SDK Controls</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/seema/archive/2009/01/07/published-the-control-source-code-for-silverlight-2-runtime-sdk.aspx" /><id>http://blogs.msdn.com/seema/archive/2009/01/07/published-the-control-source-code-for-silverlight-2-runtime-sdk.aspx</id><published>2009-01-08T04:46:00Z</published><updated>2009-01-08T04:46:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Verdana&gt;Hi all,&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Verdana&gt;We’ve just &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=EB83ED4C-AC85-4DE9-8395-285628EE2254&amp;amp;displaylang=en"&gt;&lt;FONT face=Verdana&gt;published the sample source code&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana&gt; for the Silverlight 2 Controls as shipped in the runtime and the SDK.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Verdana&gt;Within the RuntimeControls folder, you’ll see a Solution that contains three projects: &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;1.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;SilverlightControls – One can edit the source and default control templates of the controls in order to build a DLL containing custom versions of the controls. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;2.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Controls Sample – One can take the SilverlightControls DLL from #1 and include it in a project such as this. If you press F5, this app will launch displaying the controls created in #1.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;3.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;System.Windows.Design – This project is here largely for reference, it shows how to build a Design dll for VisualStudio and Expression Blend such that your custom controls would display within the toolbox. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;IMG title="Control Source Explorer" style="WIDTH: 260px; HEIGHT: 549px" height=549 alt="Control Source Explorer" src="http://eicyzw.bay.livefilestore.com/y1pUsPw5tpHgSR-ye-wDGHNXzlehm8K8hYLKc2pzh0ltd_No4sYJGttm3D1osJGz6_RQwnSNs712Qm0aGzTNw3qtA/control%20source%20VS%20explorer.jpg" width=260 mce_src="http://eicyzw.bay.livefilestore.com/y1pUsPw5tpHgSR-ye-wDGHNXzlehm8K8hYLKc2pzh0ltd_No4sYJGttm3D1osJGz6_RQwnSNs712Qm0aGzTNw3qtA/control%20source%20VS%20explorer.jpg"&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Verdana&gt;Disclaimer: Note that we did take a small amount of changes in the Runtime Controls to get the project to properly build outside of our internal build environment. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;FONT face=Verdana&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;The &lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=EB83ED4C-AC85-4DE9-8395-285628EE2254&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=EB83ED4C-AC85-4DE9-8395-285628EE2254&amp;amp;displaylang=en"&gt;source for the following controls was released&lt;/A&gt;:&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Managed Runtime Controls:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;o&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;ButtonBase&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;o&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Button&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;o&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;HyperlinkButton&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;o&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;CheckBox&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;o&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;RadioButton&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;o&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;ToggleButton&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;o&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;RangeBase&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;o&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;ProgressBar&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;o&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Slider&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;o&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;ScrollBar&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;o&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Thumb&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;SDK classes:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;o&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Calendar&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;o&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;DatePicker&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;o&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;DataGrid&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;o&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;TabControl&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;o&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;GridSplitter&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Unite Tests for the SDK controls&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Appropriate sub-types (eventargs/ handlers, etc)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Have fun and let us know what you build!&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Seema, Andre Michaud, &amp;amp; Jon Sheller &lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9292495" width="1" height="1"&gt;</content><author><name>seemar</name><uri>http://blogs.msdn.com/members/seemar.aspx</uri></author></entry><entry><title>What is the Silverlight Font?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/seema/archive/2008/11/25/what-is-the-silverlight-font.aspx" /><id>http://blogs.msdn.com/seema/archive/2008/11/25/what-is-the-silverlight-font.aspx</id><published>2008-11-26T02:12:00Z</published><updated>2008-11-26T02:12:00Z</updated><content type="html">&lt;P&gt;Saw this forum &lt;A class="" href="http://silverlight.net/forums/t/48977.aspx" target=_blank mce_href="http://silverlight.net/forums/t/48977.aspx"&gt;post&lt;/A&gt;, and thought it worthwhile to send out an FYI to the rest of the world:&lt;/P&gt;
&lt;P&gt;In Silverlight 1.0, we use Lucida as the default font. For Silverlight 2 apps, we created a world-friendly font, called the Portable UI font (PUI!),&amp;nbsp;which uses the Verdana glyphs for the Western characters and a variety of other glyphs for other languages.&lt;/P&gt;
&lt;P&gt;Why? SL1 needed a web-friendly font. SL2 wanted to ship a font that looked great with our controls. The decision to use Lucida and Verdana depending on whether you host CLR was a compromise that I brokered between our designer, the text team,&amp;nbsp;and the compat folks. &lt;/P&gt;
&lt;P&gt;If you find yourself in a jam where&amp;nbsp;you need to match the standard Silverlight 2 font, set the FontFamily to Verdana at the top of your application. If the characters are Western, we will use Verdana. If the characters are not supported by Verdana, it will fall back to our PUI.&lt;/P&gt;
&lt;P&gt;(The issue in the linked &lt;A class="" href="http://silverlight.net/forums/t/48977.aspx" target=_blank mce_href="http://silverlight.net/forums/t/48977.aspx"&gt;post&lt;/A&gt;&amp;nbsp;is a bug, we should detect that it is a&amp;nbsp;Silverlight 2&amp;nbsp;app regradless of the extension. Let us know if you see any other variants of this bug, would love to hammer those out.)&lt;/P&gt;
&lt;P&gt;Cheers, Seema&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9142940" width="1" height="1"&gt;</content><author><name>seemar</name><uri>http://blogs.msdn.com/members/seemar.aspx</uri></author><category term="silverlight" scheme="http://blogs.msdn.com/seema/archive/tags/silverlight/default.aspx" /></entry><entry><title>Silverlight Tip of the Day, some tips from the Silverlight perf talk</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/seema/archive/2008/11/25/silverlight-tip-of-the-day-some-tips-from-the-silverlight-perf-talk.aspx" /><id>http://blogs.msdn.com/seema/archive/2008/11/25/silverlight-tip-of-the-day-some-tips-from-the-silverlight-perf-talk.aspx</id><published>2008-11-26T00:27:00Z</published><updated>2008-11-26T00:27:00Z</updated><content type="html">&lt;P&gt;Mike Snow posted a&amp;nbsp;few of the tips&amp;nbsp;from my PDC talk&amp;nbsp;here, it's a great summary. You can check it out &lt;A class="" href="http://silverlight.net/blogs/msnow/archive/2008/11/03/silverlight-tip-of-the-day-67-silverlight-performance-tips.aspx" target=_blank mce_href="http://silverlight.net/blogs/msnow/archive/2008/11/03/silverlight-tip-of-the-day-67-silverlight-performance-tips.aspx"&gt;here&lt;/A&gt;. Cheers! Seema&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9142804" width="1" height="1"&gt;</content><author><name>seemar</name><uri>http://blogs.msdn.com/members/seemar.aspx</uri></author><category term="slperf" scheme="http://blogs.msdn.com/seema/archive/tags/slperf/default.aspx" /><category term="silverlight" scheme="http://blogs.msdn.com/seema/archive/tags/silverlight/default.aspx" /></entry><entry><title>Getting to the Media FastPath</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/seema/archive/2008/11/07/getting-to-the-media-fastpath.aspx" /><id>http://blogs.msdn.com/seema/archive/2008/11/07/getting-to-the-media-fastpath.aspx</id><published>2008-11-08T05:15:00Z</published><updated>2008-11-08T05:15:00Z</updated><content type="html">&lt;P&gt;Earlier this week, us in the Silverlight perf and media teams reviewed Ben Waggoner's tutorial on how to build fast media players, check it out here:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://on10.net/blogs/benwagg/Building-high-performance-Silverlight-Media-Players/"&gt;http://on10.net/blogs/benwagg/Building-high-performance-Silverlight-Media-Players/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Tis a great how to guide.&lt;/P&gt;
&lt;P&gt;(now I'm really going home. Seema)&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9053529" width="1" height="1"&gt;</content><author><name>seemar</name><uri>http://blogs.msdn.com/members/seemar.aspx</uri></author><category term="slperf" scheme="http://blogs.msdn.com/seema/archive/tags/slperf/default.aspx" /><category term="media" scheme="http://blogs.msdn.com/seema/archive/tags/media/default.aspx" /><category term="silverlight" scheme="http://blogs.msdn.com/seema/archive/tags/silverlight/default.aspx" /></entry><entry><title>EnableFramerateCounter, Setting your Framerate correctly</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/seema/archive/2008/11/07/enableframeratecounter-setting-your-framerate-correctly-and-a-debug-bug.aspx" /><id>http://blogs.msdn.com/seema/archive/2008/11/07/enableframeratecounter-setting-your-framerate-correctly-and-a-debug-bug.aspx</id><published>2008-11-08T04:39:00Z</published><updated>2008-11-08T04:39:00Z</updated><content type="html">&lt;P&gt;&lt;U&gt;Debug tool&lt;BR&gt;&lt;/U&gt;I posted about EnableFramerateCounter before -- it is a simple little debugging setting that you can use when trying to figure out:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Which of these designs hurts my framerate more?&lt;/LI&gt;
&lt;LI&gt;If&amp;nbsp;I add this module in, does it hurt my framerate? &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;To figure these out, you can:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Set the plugin's desired framerate at 1000 (&lt;EM&gt;&lt;SPAN class=parameter sdata="paramReference"&gt;silverlightObject&lt;/SPAN&gt;.&lt;B&gt;settings&lt;/B&gt;.&lt;STRONG&gt;MaxFrameRate&amp;nbsp;&lt;/STRONG&gt;&lt;/EM&gt;OR&lt;EM&gt; &lt;/EM&gt;&lt;A href="http://wcpsdk/wpfe/html/171bb7cd-b7db-49f1-8fbc-42eb5c8371e2.htm" mce_href="http://wcpsdk/wpfe/html/171bb7cd-b7db-49f1-8fbc-42eb5c8371e2.htm"&gt;&lt;EM&gt;Silverlight.CreateObjectEx&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt;({properties:{framerate:'&lt;SPAN class=parameter sdata="paramReference"&gt;framerate&lt;/SPAN&gt;'}})&lt;/EM&gt;) &lt;/LI&gt;
&lt;LI&gt;Turn on the EnableFramerateCounter, which should show up in the status bar (IE/Firefox --&amp;gt; View --&amp;gt; Status Bar). &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;U&gt;Desired Framerates&lt;BR&gt;&lt;/U&gt;&lt;EM&gt;Make sure to reset the framerate to the suggested framerates for your app: Media apps @60fps or RIA/Control apps @20fps before launching your app to the public.&lt;BR&gt;&lt;/EM&gt;When trying to figure out the desired framerate of an animation or control-heavy app, use real people (not developers/designers) to gauge whether increasing the fps above 20fps makes sense. If you set your framerate at an unnecessarily high value, it will throttle the computer's cycles -- and could result in a jerkier effect than if you just had a lower framerate. So where 60fps might be slick and easy for your devbox, it could be a pain for your customer's machine -- so only use what you need.&lt;/P&gt;
&lt;P&gt;The desired framerate of plugin hosting media is always 60fps -- this gives the media pipeline the most number of ticks to figure out the optimal timing of presenting a frame. Silverlight will decode at the framerate of the encoded video (this usually is &amp;lt;32fps), and we present the frames in sync with the audio. To summarize roughly, if the platform doesn't receive a tick in sync with the audio, then the platform will decode the frame, and then just throw it away. If you don't understand this, just trust me and use framerate=60. &lt;/P&gt;
&lt;P&gt;Technically, you could set the framerate dynamically -- I haven't tried this, but it might be a useful thing to try out if your app has both media and heavy controls/animations. &lt;/P&gt;
&lt;P&gt;&lt;U&gt;Debugging Settings&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;So here are the debugging settings that&amp;nbsp;I use (not all at once, of course)&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-font-kerning: 12.0pt"&gt;Sys.Silverlight.&lt;B style="mso-bidi-font-weight: normal"&gt;createObjectEx&lt;/B&gt;({&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-font-kerning: 12.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;source: "xaml/Scene.xaml",&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-font-kerning: 12.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;parentElement: document.getElementById("SilverlightControlHost"),&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-font-kerning: 12.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;id: "SilverlightControl",&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-font-kerning: 12.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;properties: {&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-font-kerning: 12.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;width: "500", height: "500",&lt;B&gt; &lt;/B&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-font-kerning: 12.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;isWindowless: false, &lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-font-kerning: 12.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;background: "FF000000", &lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-font-kerning: 12.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;framerate: &lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-font-kerning: 12.0pt"&gt;"&lt;B&gt;10000&lt;/B&gt;"&lt;B&gt; &lt;/B&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;}, &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-font-kerning: 12.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;events: { onLoad:onLoadHandler} });&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-font-kerning: 12.0pt"&gt;function onLoadHandler() {&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-font-kerning: 12.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;agControl = document.getElementById("SilverlightControl");&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-font-kerning: 12.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;/* To see the framerate displayed in the browser status bar */&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-font-kerning: 12.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;agControl.settings.EnableFrameRateCounter = true;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-font-kerning: 12.0pt"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-font-kerning: 12.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;/* To see the redraw regions*/&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-font-kerning: 12.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;agControl.settings.EnableRedrawRegions= true;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-font-kerning: 12.0pt"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-font-kerning: 12.0pt"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-font-kerning: 12.0pt"&gt;
&lt;P&gt;I accidentally dumped the sugar canister into my tea, time to go home.&lt;BR&gt;Seema&lt;BR&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9053523" width="1" height="1"&gt;</content><author><name>seemar</name><uri>http://blogs.msdn.com/members/seemar.aspx</uri></author><category term="slperf" scheme="http://blogs.msdn.com/seema/archive/tags/slperf/default.aspx" /><category term="media" scheme="http://blogs.msdn.com/seema/archive/tags/media/default.aspx" /><category term="silverlight" scheme="http://blogs.msdn.com/seema/archive/tags/silverlight/default.aspx" /></entry><entry><title>PDC: Deep Dive into building an optimized graphics-intensive SL app</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/seema/archive/2008/11/03/pdc-deep-dive-into-building-an-optimized-graphics-intensive-sl-app.aspx" /><id>http://blogs.msdn.com/seema/archive/2008/11/03/pdc-deep-dive-into-building-an-optimized-graphics-intensive-sl-app.aspx</id><published>2008-11-03T22:57:00Z</published><updated>2008-11-03T22:57:00Z</updated><content type="html">&lt;P&gt;Thank you everyone for attending. For those who could not make it, you can check out my talk &lt;A class="" href="http://channel9.msdn.com/pdc2008/PC06/" target=_blank mce_href="http://channel9.msdn.com/pdc2008/PC06/"&gt;here on channel9&lt;/A&gt;, it was PC06:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;In this deep dive session we pull the covers off of the layout, rendering, and media pipelines to discuss how things work and how to optimize your application. This session covers how to set goals with your designer and developer teams, what happens behind the scenes with control visuals, the underlying mechanisms of our media stack, and how to profile your application.&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;My deck is &lt;A class="" href="http://eicyzw.bay.livefilestore.com/y1p3U8JnTBQHM-N4gRYmKu86ySWq4k6q5iP44Pk52wAToEhhnG819bDI94k7IE6sx5j883rpVy99I0/PDC%20ramchandani2.pptx?download" mce_href="http://eicyzw.bay.livefilestore.com/y1p3U8JnTBQHM-N4gRYmKu86ySWq4k6q5iP44Pk52wAToEhhnG819bDI94k7IE6sx5j883rpVy99I0/PDC%20ramchandani2.pptx?download"&gt;here&lt;/A&gt;, my halo video player is &lt;A class="" href="http://eicyzw.bay.livefilestore.com/y1p8uGw9JZSN0tG3FOpu6Vhb-2jYTHoJG3lqVhG7-5oYrXztVlZ34e9leVE6CNJV9aUAYeEg5SemcQ/haloplayer.zip?download" target=_blank mce_href="http://eicyzw.bay.livefilestore.com/y1p8uGw9JZSN0tG3FOpu6Vhb-2jYTHoJG3lqVhG7-5oYrXztVlZ34e9leVE6CNJV9aUAYeEg5SemcQ/haloplayer.zip?download"&gt;here&lt;/A&gt;. The instructions to use xperf are available at this &lt;A class="" href="http://blogs.msdn.com/seema/archive/2008/10/08/xperf-a-cpu-sampler-for-silverlight.aspx" mce_href="http://blogs.msdn.com/seema/archive/2008/10/08/xperf-a-cpu-sampler-for-silverlight.aspx"&gt;post&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;Please fill out an &lt;A class="" href="https://sessions.microsoftpdc.com/ws/evalredir.aspx?sessionid=e519c65c-e8c7-4ad1-a99f-c77237ca1c66" mce_href="https://sessions.microsoftpdc.com/ws/evalredir.aspx?sessionid=e519c65c-e8c7-4ad1-a99f-c77237ca1c66"&gt;eval &lt;/A&gt;after watching. I was honored to do a talk&amp;nbsp;at PDC and&amp;nbsp;I do read and appreciate all feedback.&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://channel9.msdn.com/pdc2008/PC06/" target=_blank mce_href="http://channel9.msdn.com/pdc2008/PC06/"&gt;&lt;IMG title="Screenshot of talk recording" style="WIDTH: 306px; HEIGHT: 171px" height=171 alt="Screenshot of talk recording" src="http://eicyzw.bay.livefilestore.com/y1pWPB44BXgBjrB6xri42351unfUXgmFaOKOFy2OXaHBPfgIHs5ozcEWamQ_blGsi1oJuq4A0FN7-Q/pdcscreenshot.jpg" width=306 align=middle border=2 mce_src="http://eicyzw.bay.livefilestore.com/y1pWPB44BXgBjrB6xri42351unfUXgmFaOKOFy2OXaHBPfgIHs5ozcEWamQ_blGsi1oJuq4A0FN7-Q/pdcscreenshot.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Cheers, S&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9034837" width="1" height="1"&gt;</content><author><name>seemar</name><uri>http://blogs.msdn.com/members/seemar.aspx</uri></author><category term="slperf" scheme="http://blogs.msdn.com/seema/archive/tags/slperf/default.aspx" /><category term="avperf" scheme="http://blogs.msdn.com/seema/archive/tags/avperf/default.aspx" /><category term="media" scheme="http://blogs.msdn.com/seema/archive/tags/media/default.aspx" /><category term="silverlight" scheme="http://blogs.msdn.com/seema/archive/tags/silverlight/default.aspx" /></entry><entry><title>We Shipped! See you at the PDC!</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/seema/archive/2008/10/21/we-shipped-see-you-at-the-pdc.aspx" /><id>http://blogs.msdn.com/seema/archive/2008/10/21/we-shipped-see-you-at-the-pdc.aspx</id><published>2008-10-22T01:56:00Z</published><updated>2008-10-22T01:56:00Z</updated><content type="html">&lt;P&gt;We shipped &lt;A class="" href="http://www.microsoft.com/silverlight/" target=_blank mce_href="http://www.microsoft.com/silverlight/"&gt;Silverlight 2&lt;/A&gt;! Hurrah!&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We made a push to fix several perf improvements throughout the platform between the RC and RTM, let me know if a) you see an improvement that you like! b) something that we still need to fix!&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'll be heading to the &lt;A class="" href="http://www.microsoftpdc.com/" target=_blank mce_href="http://www.microsoftpdc.com/"&gt;PDC&lt;/A&gt; on Monday morning to give a talk: &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;DIV id=selectedTitle&gt;&lt;EM&gt;Deep Dive: Building an Optimized, Graphics-Intensive Application in Microsoft Silverlight &lt;BR&gt;Seema Ramchandani&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV id=selectedAbstract&gt;&lt;EM&gt;In this deep dive session we pull the covers off of the layout, rendering, and media pipelines to discuss how things work and how to optimize your application. This session covers how to set goals with your designer and developer teams, what happens behind the scenes with control visuals, the underlying mechanisms of our media stack, and how to profile your application. &lt;/EM&gt;&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;
&lt;DIV&gt;&lt;SPAN class=sesstgs onclick="tfilter('66074e06-4493-415a-acb8-91513b775487','Silverlight');return false;"&gt;The talk wmv should be posted online afterwards. &lt;/SPAN&gt;&lt;SPAN class=sesstgs onclick="tfilter('66074e06-4493-415a-acb8-91513b775487','Silverlight');return false;"&gt;Please mail me any graphics/perf topics that you want to hear discussed, and I'll try to incorporate them into the talk (either in the deck or Q&amp;amp;A). &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN class=sesstgs onclick="tfilter('66074e06-4493-415a-acb8-91513b775487','Silverlight');return false;"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN class=sesstgs onclick="tfilter('66074e06-4493-415a-acb8-91513b775487','Silverlight');return false;"&gt;Cheers! &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN class=sesstgs onclick="tfilter('66074e06-4493-415a-acb8-91513b775487','Silverlight');return false;"&gt;.&lt;/SPAN&gt;&lt;SPAN class=sesstgs onclick="tfilter('66074e06-4493-415a-acb8-91513b775487','Silverlight');return false;"&gt;seema&lt;/SPAN&gt;&lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9010483" width="1" height="1"&gt;</content><author><name>seemar</name><uri>http://blogs.msdn.com/members/seemar.aspx</uri></author><category term="silverlight" scheme="http://blogs.msdn.com/seema/archive/tags/silverlight/default.aspx" /></entry><entry><title>XPerf: A CPU Sampler for Silverlight</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/seema/archive/2008/10/08/xperf-a-cpu-sampler-for-silverlight.aspx" /><id>http://blogs.msdn.com/seema/archive/2008/10/08/xperf-a-cpu-sampler-for-silverlight.aspx</id><published>2008-10-09T07:59:00Z</published><updated>2008-10-09T07:59:00Z</updated><content type="html">&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;For &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;those of you who are a) building graphics-intensive applications or b) trying to debug your performance, &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;I would like to introduce xperf and xperfview. These are two profiling tools which can be used to analyze the performance of any Microsoft technology, including Silverlight. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;These tools have existed internally for quite some time, and I'm excited to see that they have been released. I use xperf as my first step for profiling any app -- it's a simple CPU sampler and gives you a peek to why on earth something is taking up so many CPU cycles. XPerf plugs into the Event Tracing for Windows library, and listens to all the internally embedded events that all Windows products trigger. With the publicly available Silverlight symbols, you can see how these events line back to what Silverlight is doing under the hood, while your app is running.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;Note: with xperf, managed code (your app code) will show up as samples on the methods that your app code calls. XPerf does not have the capabilities to show CPU cycles in managed code.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;With XPerf, one can find answers to questions like:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV style="MARGIN: 0in 0in 0pt 18.5pt; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo3"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;Is my app asking Silverlight to constantly spin on CPU cycles.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV style="MARGIN: 0in 0in 0pt 18.5pt; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo3"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;Whether one UI layout or design is more expensive than the other.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV style="MARGIN: 0in 0in 0pt 18.5pt; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo3"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;Whether the time is spent in drawing (agcore.dll), the plug-in’s interactions with (npctrl.dll), or in compilation/JIT (coreclr.dll)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV style="MARGIN: 0in 0in 0pt 18.5pt; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo3"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;How much is stretching/blending/rotating that video going to cost in terms of CPU cycles? How about if you encode it differently?&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;Please note that the tools only work on Vista and Windows Server 2k3. For profiling on a mac, see &lt;A href="http://blogs.msdn.com/seema/archive/2007/10/02/stack-of-post-its-on-perf.aspx"&gt;my previous post&lt;/A&gt; on how to use Shark from the &lt;A href="http://developer.apple.com/tools/performance/"&gt;Apple CHUD tools&lt;/A&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;The first-time instructions are as follows:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in; VERTICAL-ALIGN: middle; TEXT-INDENT: -0.25in; mso-list: l2 level2 lfo1; tab-stops: list 1.0in"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;1.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #003300"&gt;&lt;FONT face=Calibri size=3&gt;Install XPerf (formerly xperfinfo) and xperfview (formerly xperf) as available here: &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri color=#003300 size=3&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/cc305187.aspx"&gt;http://msdn.microsoft.com/en-us/library/cc305187.aspx&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in; VERTICAL-ALIGN: middle; TEXT-INDENT: -0.25in; mso-list: l2 level2 lfo1; tab-stops: list 1.0in"&gt;[10/9-9am I updated the above link: download link &lt;A href="http://www.microsoft.com/whdc/system/sysperf/perftools.mspx"&gt;http://www.microsoft.com/whdc/system/sysperf/perftools.mspx&lt;/A&gt;]&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in; VERTICAL-ALIGN: middle; TEXT-INDENT: -0.25in; mso-list: l2 level2 lfo1; tab-stops: list 1.0in" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; VERTICAL-ALIGN: middle"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Close everything that is not user-specific (close VS, but keep your virus checker, etc). &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in; VERTICAL-ALIGN: middle; TEXT-INDENT: -0.25in; mso-list: l2 level2 lfo1; tab-stops: list 1.0in"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;2.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Startup your sample &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; VERTICAL-ALIGN: middle"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;I personally start up my sample without profiling because the startup sampling is very different from that of the runtime. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; mso-list: l2 level2 lfo1; tab-stops: list 1.0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #003300; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-style: italic; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;3.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;Open an &lt;B style="mso-bidi-font-weight: normal"&gt;&lt;U&gt;Administrator-level command prompt&lt;/U&gt;. &lt;/B&gt;Set your symbol path in the cmd shell:&lt;SPAN style="COLOR: #003300; mso-bidi-font-style: italic"&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #339966; FONT-FAMILY: Consolas; mso-bidi-font-family: 'Courier New'"&gt;set&amp;nbsp;_NT_SYMBOL_PATH=&amp;nbsp;srv*C:\symbols*http://msdl.microsoft.com/downloads/symbols&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #003300; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-style: italic"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;This will set your symbol path to point to the Microsoft symbol server. The symbol server hosts debugging symbols for most all Microsoft products.&lt;/SPAN&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;/SPAN&gt;&lt;/I&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;[&lt;STRONG&gt;update&lt;/STRONG&gt;: cd into C:\Program Files\Microsoft Windows Performance Toolkit]&lt;/SPAN&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;/SPAN&gt;&lt;/I&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in; VERTICAL-ALIGN: middle; TEXT-INDENT: -0.25in; mso-list: l2 level2 lfo1; tab-stops: list 1.0in"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;4.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;SPAN style="COLOR: #339966; FONT-FAMILY: Consolas"&gt;xperf -on base&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;I&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #003300; FONT-FAMILY: 'Calibri','sans-serif'"&gt;Run the app for maybe 10 seconds for this initial run. We want to understand what method is taking up the most cycles. At the end of this, you will see a graph of CPU usage over time – so you can use various methods to see where time is going: repeatedly execute a user action (expand/collapse, scroll, etc), let the media play for a while, etc. If you are trying to compare several different options, you can execute different actions at widely-spaced intervals, and compare the graphs for each.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; mso-list: l2 level2 lfo1; tab-stops: list 1.0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #003300; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-style: italic; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;5.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #339966; FONT-FAMILY: Consolas"&gt;xperf –d myprofile.etl&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #003300; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-style: italic"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;I&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #003300; FONT-FAMILY: 'Calibri','sans-serif'"&gt;Step #4 will both stop the profile and start the writing of the event trace log (etl) file. This can take a while, depending on the complexity of your application, how many other apps were running, and how long the profile extended. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;I&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #003300; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; mso-list: l2 level2 lfo1; tab-stops: list 1.0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #003300; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-style: italic; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;6.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #339966; FONT-FAMILY: Consolas"&gt;xperfview myprofile.etl&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #003300; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-style: italic"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;I&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #003300; FONT-FAMILY: 'Calibri','sans-serif'"&gt;We see now see multiple graphs. We are most interested in that of the CPU cycles, which will look something like this:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="mso-no-proof: yes"&gt;&lt;?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /&gt;&lt;v:shapetype id=_x0000_t75 stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"&gt;&lt;v:stroke joinstyle="miter"&gt;&lt;/v:stroke&gt;&lt;v:formulas&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"&gt;&lt;/v:path&gt;&lt;o:lock aspectratio="t" v:ext="edit"&gt;&lt;/o:lock&gt;&lt;/v:shapetype&gt;&lt;/SPAN&gt;&lt;I&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #003300; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;I&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #003300; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;IMG title="xperfview full graph" style="WIDTH: 1009px; HEIGHT: 283px" height=283 alt="xperfview full graph" hspace=3 src="http://eicyzw.bay.livefilestore.com/y1pHAgHp6EREhr2s3jGpqW9U5tBTZhj6NeuaWwSzSB76tUx2Biu_RULUOsgxPC90cj5DfXAo0rb0ns/gymnast_graph1.jpg" width=1009 vspace=3 border=1 mce_src="http://eicyzw.bay.livefilestore.com/y1pHAgHp6EREhr2s3jGpqW9U5tBTZhj6NeuaWwSzSB76tUx2Biu_RULUOsgxPC90cj5DfXAo0rb0ns/gymnast_graph1.jpg"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;I&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #003300; FONT-FAMILY: 'Calibri','sans-serif'"&gt;In my sample, I have a dual-core machine so you see two lines, one for each CPU. This graph is of a media file playing, which should have an almost steady hit for the CPU. I can drag and select any section of the graph and take a closer look:&lt;/SPAN&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;I&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #003300; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/I&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; mso-list: l2 level2 lfo1; tab-stops: list 1.0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #003300; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-style: italic; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;7.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;Trace&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Wingdings"&gt;à&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;Load Symbols&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #003300; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-style: italic"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; mso-list: l2 level2 lfo1; tab-stops: list 1.0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #003300; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-style: italic; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;8.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;Select the area of the CPU graph that you want to see&lt;SPAN style="COLOR: #003300; mso-bidi-font-style: italic"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL style="MARGIN-TOP: 0in" type=1&gt;
&lt;OL style="MARGIN-TOP: 0in" type=1&gt;
&lt;UL style="MARGIN-TOP: 0in" type=disc&gt;
&lt;UL style="MARGIN-TOP: 0in" type=circle&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; VERTICAL-ALIGN: middle; mso-list: l3 level4 lfo2; tab-stops: list 2.0in"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Right-click and select &lt;B&gt;Summary Table&lt;/B&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/OL&gt;&lt;/OL&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 1.75in; VERTICAL-ALIGN: middle"&gt;&lt;SPAN style="mso-no-proof: yes"&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;IMG title="How to open summary table" style="WIDTH: 424px; HEIGHT: 511px" height=511 alt="How to open summary table" hspace=3 src="http://eicyzw.bay.livefilestore.com/y1p0-8cICT7eWLRO2DB-5VNM0nHTgnSraDbXruTEwXx758hm0UAjzvc4-GI3OBuYr3vB1H2g5iuDsc/gymnast_graph2.jpg" width=424 vspace=3 border=1 mce_src="http://eicyzw.bay.livefilestore.com/y1p0-8cICT7eWLRO2DB-5VNM0nHTgnSraDbXruTEwXx758hm0UAjzvc4-GI3OBuYr3vB1H2g5iuDsc/gymnast_graph2.jpg"&gt;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 1.75in; VERTICAL-ALIGN: middle"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in; VERTICAL-ALIGN: middle; TEXT-INDENT: -0.25in; mso-list: l2 level2 lfo1; tab-stops: list 1.0in"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;9.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: #003300"&gt;Accept the EULA for using symbols, expand IExplore.exe (or firefox.exe)&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; VERTICAL-ALIGN: middle"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;At this point, you’ll see how the time breaks down between the different processes and modules running within windows. Agcore.dll, npctrl.dll, and coreclr.dll are all Silverlight. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; mso-list: l2 level2 lfo1; tab-stops: list 1.0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;10.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;If the symbols server has correctly been set, you’ll see that you can expand and see the breakdown of time in each method call within agcore.dll:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 1in"&gt;&lt;SPAN style="mso-no-proof: yes"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;o:p&gt;&lt;IMG title="Summary Table of Olympics on Beta2 Bits" style="WIDTH: 926px; HEIGHT: 317px" height=317 alt="Summary Table of Olympics on Beta2 Bits" hspace=3 src="http://eicyzw.bay.livefilestore.com/y1pNI0mXBl2dPSJOLYTwBS0106QkMod_-RIaVY8FEx_F-dZrdRpjyS0g5Dvp6cRS0Ow7x5UzbNBH6w/gymnast_summary.jpg" width=926 vspace=3 border=1 mce_src="http://eicyzw.bay.livefilestore.com/y1pNI0mXBl2dPSJOLYTwBS0106QkMod_-RIaVY8FEx_F-dZrdRpjyS0g5Dvp6cRS0Ow7x5UzbNBH6w/gymnast_summary.jpg"&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;The way to read this graph is that IE is taking up 40% of the CPU on average, during the selected sample. Within that, 32% of the time is spent in Silverlight core (graphics/decoding/property engine, etc are all represented in agcore.dll), and then of that time, 29% (9.24/32.33) of the drawing time is spent in one method call. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;Note: with xperf, managed code (your app code) will show up as samples on the methods that your app code calls. XPerf does not have the capabilities to look at app code.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;Now what? Well, with just the above think about how you can answer the questions at the top: &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo3"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;Is my app asking Silverlight to constantly spin on CPU cycles. &lt;BR&gt;&lt;I style="mso-bidi-font-style: normal"&gt;Do I see activity when the app does not seem to be doing anything? Where does the summary table say that time is going? Perhaps turn on EnableRedrawRegions and see if there is a draw being forced.&lt;/I&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo3"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;Whether one UI layout or design is more expensive than the other. &lt;BR&gt;&lt;I style="mso-bidi-font-style: normal"&gt;When I scroll now, is my average CPU higher or lower than before?&lt;/I&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo3"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;Whether the time is spent in drawing (agcore.dll), the plug-in’s interactions with (npctrl.dll), or in compilation/JIT (coreclr.dll) &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo3"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;How much is stretching/blending/rotating that video going to cost in terms of CPU cycles? How about if you encode it differently? &lt;BR&gt;&lt;I style="mso-bidi-font-style: normal"&gt;Are there new methods that you see in the stack, now that you have stretched the media? Blended it? What is the average time for CPU cycles compared to your baseline? I know that it is cheaper for me to embed an icon overlay directly into the video, but what does it really cost in terms of CPU time?&lt;/I&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;Note: The tools only work on Vista and Windows Server 2k3&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;For later usage, your usage pattern is quicker:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;DIV style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; mso-list: l0 level2 lfo4; tab-stops: list 1.0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;Set your symbol path in an &lt;B style="mso-bidi-font-weight: normal"&gt;&lt;U&gt;Admin-level&lt;/U&gt;&lt;/B&gt; cmd shell:&lt;SPAN style="COLOR: #003300; mso-bidi-font-style: italic"&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #339966; FONT-FAMILY: Consolas; mso-bidi-font-family: 'Courier New'"&gt;set&amp;nbsp;_NT_SYMBOL_PATH=&amp;nbsp;srv*C:\symbols*http://msdl.microsoft.com/downloads/symbols&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #003300; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-style: italic"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in; VERTICAL-ALIGN: middle; TEXT-INDENT: -0.25in; mso-list: l0 level2 lfo4; tab-stops: list 1.0in"&gt;&lt;FONT size=3&gt;&lt;SPAN style="COLOR: #339966; FONT-FAMILY: Consolas"&gt;xperf -on base&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; mso-list: l0 level2 lfo4; tab-stops: list 1.0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #339966; FONT-FAMILY: Consolas"&gt;xperf –d myprofile.etl&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #003300; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-style: italic"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; mso-list: l0 level2 lfo4; tab-stops: list 1.0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #339966; FONT-FAMILY: Consolas"&gt;xperfview myprofile.etl&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #003300; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-style: italic"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;The platform code and the CPU samples will change version to version, so please keep that in mind when profiling between upgrades. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;See anything interesting? Drop me a note!&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Have fun! &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; mso-fareast-font-family: 'MS Mincho'; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;.seema.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8992452" width="1" height="1"&gt;</content><author><name>seemar</name><uri>http://blogs.msdn.com/members/seemar.aspx</uri></author><category term="slperf" scheme="http://blogs.msdn.com/seema/archive/tags/slperf/default.aspx" /><category term="avperf" scheme="http://blogs.msdn.com/seema/archive/tags/avperf/default.aspx" /><category term="media" scheme="http://blogs.msdn.com/seema/archive/tags/media/default.aspx" /><category term="silverlight" scheme="http://blogs.msdn.com/seema/archive/tags/silverlight/default.aspx" /></entry><entry><title>Perf Debugging Tips: EnableRedrawRegions &amp;amp;amp; a performance bug in VideoBrush</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/seema/archive/2007/10/07/perf-debugging-tips-enableredrawregions-a-performance-bug-in-videobrush.aspx" /><id>http://blogs.msdn.com/seema/archive/2007/10/07/perf-debugging-tips-enableredrawregions-a-performance-bug-in-videobrush.aspx</id><published>2007-10-08T04:50:00Z</published><updated>2007-10-08T04:50:00Z</updated><content type="html">&lt;P&gt;Was chatting with &lt;A class="" href="http://www.andybeaulieu.com/" mce_href="http://www.andybeaulieu.com/"&gt;Andy Beaulieu &lt;/A&gt;at Remix Boston, and he was commenting that it seems&amp;nbsp;that Silverlight only draws when needed -- it is true, we try to not waste your CPU cycles. For Perf debugging, a way to tell when you are causing a redraw is to turn on the control's &lt;EM&gt;EnableRedrawRegions&lt;/EM&gt; property. &lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in; mso-add-space: auto"&gt;&lt;SPAN style="FONT-FAMILY: Courier"&gt;&lt;FONT size=3&gt;agControl.settings.EnableRedrawRegions = true;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;With this feature on, when a section of the plugin causes a draw, that section will draw in a different color. This setting is not for those susceptible to seizures =P&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Bug found&lt;/STRONG&gt;&lt;/U&gt;: With this setting, I investigated a performance issue with &lt;STRONG&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb404773.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/bb404773.aspx"&gt;VideoBrush&lt;/A&gt;&lt;/STRONG&gt;.&amp;nbsp;In our 1.0 Silverlight bits,&amp;nbsp;VideoBrush always&amp;nbsp;requests a redraw in the next frame.&amp;nbsp;This is a bug. Unfortunately, if the control framerate is set to the default (60 fps), then any VideoBrush will be redrawn 60 times in a second. In actuality, VideoBrush should draw at the framerate that its media is getting refreshed (eg. 30fps, 15fps, or 0fps if paused), and should not take up so many CPU cycles. We have a fix for this bug in 1.1. If you are blocked by this bug, please let me know and I can pass the info along to our servicing team.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;[update] By the way, this bug was fixed in a servicing pack in dec 2007. &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;A &lt;STRONG&gt;workaround &lt;/STRONG&gt;is to set the framerate on your Silverlight control to be the same as the framerate of your video. There are visual artifacts to this workaround, but it is slight&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt; mso-add-space: auto"&gt;&lt;SPAN style="FONT-FAMILY: Courier"&gt;&lt;FONT size=3&gt;Sys.Silverlight.createObjectEx({&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in; mso-add-space: auto"&gt;&lt;SPAN style="FONT-FAMILY: Courier"&gt;&lt;FONT size=3&gt;source: "xaml/Scene.xaml",&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in; mso-add-space: auto"&gt;&lt;SPAN style="FONT-FAMILY: Courier"&gt;&lt;FONT size=3&gt;parentElement: document.getElementById("SilverlightControlHost"),&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in; mso-add-space: auto"&gt;&lt;SPAN style="FONT-FAMILY: Courier"&gt;&lt;FONT size=3&gt;id: "SilverlightControl",&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in; mso-add-space: auto"&gt;&lt;SPAN style="FONT-FAMILY: Courier"&gt;&lt;FONT size=3&gt;properties: {&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;SPAN style="FONT-FAMILY: Courier"&gt;&lt;FONT size=3&gt;width: "500",&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;SPAN style="FONT-FAMILY: Courier"&gt;&lt;FONT size=3&gt;height: "500",&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;SPAN style="FONT-FAMILY: Courier"&gt;&lt;FONT size=3&gt;background: "black",&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-FAMILY: Courier"&gt;&lt;STRONG&gt;framerate: &lt;/STRONG&gt;"&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;&lt;STRONG&gt;30&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face=Courier&gt;"&lt;SPAN style="FONT-FAMILY: Courier"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //only as much as needed&lt;o:p&gt;&lt;/o:p&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in; mso-add-space: auto"&gt;&lt;SPAN style="FONT-FAMILY: Courier"&gt;&lt;FONT size=3&gt;}&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5352558" width="1" height="1"&gt;</content><author><name>seemar</name><uri>http://blogs.msdn.com/members/seemar.aspx</uri></author><category term="remix07boston" scheme="http://blogs.msdn.com/seema/archive/tags/remix07boston/default.aspx" /><category term="slperf" scheme="http://blogs.msdn.com/seema/archive/tags/slperf/default.aspx" /><category term="media" scheme="http://blogs.msdn.com/seema/archive/tags/media/default.aspx" /><category term="silverlight" scheme="http://blogs.msdn.com/seema/archive/tags/silverlight/default.aspx" /></entry><entry><title>Macintosh &amp;amp; Silverlight perf...</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/seema/archive/2007/10/02/stack-of-post-its-on-perf.aspx" /><id>http://blogs.msdn.com/seema/archive/2007/10/02/stack-of-post-its-on-perf.aspx</id><published>2007-10-02T23:15:00Z</published><updated>2007-10-02T23:15:00Z</updated><content type="html">&lt;P&gt;I met recently with two designers trying to figure out "what was Silverlight doing under the covers? did I accidentally turn on some feature?"&amp;nbsp;&lt;/P&gt;
&lt;P&gt;My first thought is to reference my &lt;A class="" href="http://blogs.msdn.com/seema/archive/2007/08/09/silverlight-a-few-thoughts-on-minimizing-cpu-usage.aspx" mce_href="http://blogs.msdn.com/seema/archive/2007/08/09/silverlight-a-few-thoughts-on-minimizing-cpu-usage.aspx"&gt;post &lt;/A&gt;on how to minimize CPU usage. We have to learn how to conserve not only energy but CPU cycles (yes, even if you don't see a difference on your dev box)&lt;/P&gt;
&lt;P&gt;My second thought, as I stared at the designers' laptop:&amp;nbsp;have you checked out Apple's Shark tool made for the Mac? Pretty quick and easy to learn -- you can navigate through the entire callstack of Silverlight. &lt;/P&gt;
&lt;P&gt;For the Silverlight mac developers out there, check out Shark:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Using Shark: &lt;A href="http://developer.apple.com/tools/performance/optimizingwithsystemtrace.html"&gt;http://developer.apple.com/tools/performance/optimizingwithsystemtrace.html&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Link to download "Computer Hardware Understanding Development" (CHUD) tools: &lt;A href="http://developer.apple.com/tools/download/"&gt;http://developer.apple.com/tools/download/&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;My general usage: &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Launch my silverlight application in a browser&lt;/LI&gt;
&lt;LI&gt;Direct Shark towards the browser's process&lt;/LI&gt;
&lt;LI&gt;Click on Start (it should have a 30sec timeout by default)&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;When you see the callstack, anything with agcore is from Silverlight.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Why is it named agcore?&amp;nbsp;From Wikipedia: "Ag from the Latin &lt;I&gt;Argentum&lt;/I&gt; is the chemical symbol for &lt;A title=Silver href="http://en.wikipedia.org/wiki/Silver"&gt;silver&lt;/A&gt;&amp;nbsp;"&lt;/P&gt;
&lt;P&gt;Enjoy, tell me about your experiences. Any successes? Any questions about what is showing up in the trace?&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5247078" width="1" height="1"&gt;</content><author><name>seemar</name><uri>http://blogs.msdn.com/members/seemar.aspx</uri></author><category term="slperf" scheme="http://blogs.msdn.com/seema/archive/tags/slperf/default.aspx" /><category term="silverlight" scheme="http://blogs.msdn.com/seema/archive/tags/silverlight/default.aspx" /></entry><entry><title>See you at Remix Boston!</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/seema/archive/2007/10/02/see-you-at-remix-boston.aspx" /><id>http://blogs.msdn.com/seema/archive/2007/10/02/see-you-at-remix-boston.aspx</id><published>2007-10-02T23:11:00Z</published><updated>2007-10-02T23:11:00Z</updated><content type="html">&lt;P&gt;Weather has turned dreary in Seattle already, I'm headed to Boston for a bit of warmth and to see the leaves turn....but more importantly: I'm giving a talk at &lt;A class="" href="http://www.remix07boston.com/" mce_href="http://www.remix07boston.com/"&gt;Remix Boston &lt;/A&gt;on Tuesday at 9am, introducing Silverlight as a developer and media platform. Send me a ping if you would like me to delve into a particular topic. &lt;/P&gt;
&lt;P&gt;See you there,&amp;nbsp;&lt;BR&gt;Seema&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5247064" width="1" height="1"&gt;</content><author><name>seemar</name><uri>http://blogs.msdn.com/members/seemar.aspx</uri></author></entry></feed>