<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PeterKellner.net &#187; Performance</title>
	<atom:link href="http://peterkellner.net/category/performance/feed/" rel="self" type="application/rss+xml" />
	<link>http://peterkellner.net</link>
	<description>Microsoft Focused, JavaScript,HTML5 (ExtJS, SenchaTouch &#38; Windows 8 Metro)</description>
	<lastBuildDate>Fri, 11 May 2012 16:43:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Microsoft To Add Auto-Compiled LINQ Queries to Entity Framework V.Next!</title>
		<link>http://peterkellner.net/2011/10/22/microsoft-to-add-auto-compiled-linq-queries-to-entity-framework-v-next/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=microsoft-to-add-auto-compiled-linq-queries-to-entity-framework-v-next</link>
		<comments>http://peterkellner.net/2011/10/22/microsoft-to-add-auto-compiled-linq-queries-to-entity-framework-v-next/#comments</comments>
		<pubDate>Sun, 23 Oct 2011 01:57:03 +0000</pubDate>
		<dc:creator>Peter Kellner</dc:creator>
				<category><![CDATA[.NET 4.0]]></category>
		<category><![CDATA[.NET 4.5]]></category>
		<category><![CDATA[Entity Framework]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[LINQ to SQL]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://peterkellner.net/2011/10/22/microsoft-to-add-auto-compiled-linq-queries-to-entity-framework-v-next/</guid>
		<description><![CDATA[&#160;
In May of 2009 I discovered some significant performance problems that I blogged about.&#160; In summary, I had tracked it down to the issue of LINQ2SQ having to create a full expression tree on every instantiation of a LINQ2SQL query.&#160; I’m not a compiler write kind of guy but do respect the complexity of that [...]]]></description>
			<content:encoded><![CDATA[<p>&#160;</p>
<p>In May of 2009 I discovered some significant performance problems that I <a href="http://peterkellner.net/2009/05/06/linq-to-sql-slow-performance-compilequery-critical/">blogged</a> about.&#160; In summary, I had tracked it down to the issue of LINQ2SQ having to create a full expression tree on every instantiation of a LINQ2SQL query.&#160; I’m not a compiler write kind of guy but do respect the complexity of that and doing things like building expression trees, but still this really sucked.&#160; Using the compile syntax in LINQ2SQL is very awkward, and IMHO takes all the fun out of using LINQ2SQL.&#160; If you don’t remember my post, here is the graph showing the evil happening.</p>
<p>&#160;</p>
<p><a href="http://peterkellner.net/2009/05/06/linq-to-sql-slow-performance-compilequery-critical/"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://PetersBlogCDN.s3.amazonaws.com/wp/wp/wp-content/uploads/2011/10/image6.png" width="285" height="173" /></a></p>
<p>So, what is a Microsoft MVP to do?&#160; I complained to everyone at Microsoft I knew.&#160; I made this my mission for about a year.&#160; I was told time after time that the problem was hugely complicated and no one was working on making it any faster.&#160; I just could not believe it because I felt this was such a barrier to success to <a href="http://msdn.microsoft.com/en-us/library/bb425822.aspx">LINQ2SQL</a> type technology (now <a href="http://msdn.microsoft.com/en-us/library/bb399572.aspx">Entity Framework</a> really) that Microsoft just could not ignore my findings.&#160; I was actually surprised that I was the only one screaming about this.</p>
<p>Well, quietly, <a href="http://blogs.msdn.com/b/adonet/archive/2011/10/18/how-we-talk-about-ef-and-its-future-versions.aspx">Microsoft has announced that in .Net Framework 4.5, Entity Framework will include “Auto-Compiled LINQ Queries”</a>.&#160; This is awesome!&#160;&#160; When it comes out, I’ll be testing and it giving feedback.</p>
<p>For now, I’m a very happy camper.</p>
<p>&#160;</p>
<p><a href="http://blogs.msdn.com/b/adonet/archive/2011/10/18/how-we-talk-about-ef-and-its-future-versions.aspx"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://PetersBlogCDN.s3.amazonaws.com/wp/wp/wp-content/uploads/2011/10/image7.png" width="882" height="474" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://peterkellner.net/2011/10/22/microsoft-to-add-auto-compiled-linq-queries-to-entity-framework-v-next/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How Fast are In Memory LINQ Evaluations for Doing Simple Things?</title>
		<link>http://peterkellner.net/2009/06/03/linq-in-memory-performance/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=linq-in-memory-performance</link>
		<comments>http://peterkellner.net/2009/06/03/linq-in-memory-performance/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 01:27:19 +0000</pubDate>
		<dc:creator>Peter Kellner</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[LINQ to SQL]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://peterkellner.net/2009/06/03/linq-in-memory-performance/</guid>
		<description><![CDATA[So, I recently blogged about the huge penalty for not compiling your LINQ2SQL.&#160; This problem is so big that it occurred to us that maybe all of LINQ has the problem.&#160; So, time for a simple test.&#160; Below is a very simple program that basically generates a list of Ids.&#160; In one case, it’s using [...]]]></description>
			<content:encoded><![CDATA[<p>So, I recently blogged about the huge penalty for <a href="http://peterkellner.net/2009/05/06/linq-to-sql-slow-performance-compilequery-critical/">not compiling your LINQ2SQL</a>.&#160; This problem is so big that it occurred to us that maybe all of LINQ has the problem.&#160; So, time for a simple test.&#160; Below is a very simple program that basically generates a list of Ids.&#160; In one case, it’s using LINQ, and the other just Plain C#.&#160; The code is pretty self explanatory.&#160; Here are the results:</p>
<table border="0" cellspacing="0" cellpadding="2" width="400">
<tbody>
<tr>
<td valign="top" width="200">Test Performed</td>
<td valign="top" width="200">Time to Do 100000 iterations</td>
</tr>
<tr>
<td valign="top" width="200">Using LINQ</td>
<td valign="top" width="200">52ms</td>
</tr>
<tr>
<td valign="top" width="200">Using Simple C#</td>
<td valign="top" width="200">35ms</td>
</tr>
</tbody>
</table>
<p>Well, my fears are put aside.&#160; Though LINQ is somewhat slower, for 100,000 iterations, .052 seconds is pretty good.&#160; (compared with processing a single not to complicated LINQ2SQL statement for 100,000 iterations would take about 20,000 seconds or 333 hours.&#160; Quite a difference to .052 seconds!</p>
<p> <span id="more-316"></span>
<p>Here is the code I ran for my test.&#160; Hope this help!</p>
<div class="csharpcode">
<pre class="alt"><span class="kwrd">using</span> System;</pre>
<pre><span class="kwrd">using</span> System.Collections.Generic;</pre>
<pre class="alt"><span class="kwrd">using</span> System.Diagnostics;</pre>
<pre><span class="kwrd">using</span> System.Linq;</pre>
<pre class="alt"><span class="kwrd">using</span> System.Text;</pre>
<pre>&nbsp;</pre>
<pre class="alt"><span class="kwrd">namespace</span> LINQTimingInMemory</pre>
<pre>{</pre>
<pre class="alt">     <span class="kwrd">class</span> Program</pre>
<pre>     {</pre>
<pre class="alt">         <span class="kwrd">static</span> <span class="kwrd">void</span> Main(<span class="kwrd">string</span>[] args)</pre>
<pre>         {</pre>
<pre class="alt">             <span class="kwrd">for</span> (<span class="kwrd">int</span> i=0;i&lt;2;i++)</pre>
<pre>             {</pre>
<pre class="alt">                 List&lt;<span class="kwrd">int</span>&gt; myList = <span class="kwrd">new</span> List&lt;<span class="kwrd">int</span>&gt;() {1,2,3,4,5,6,7,8,9,6,5,5,5,5,5,5};</pre>
<pre>                 Stopwatch stopWatch = <span class="kwrd">new</span> Stopwatch();</pre>
<pre class="alt">                 stopWatch.Start();</pre>
<pre>                 <span class="kwrd">int</span> iterations = 100000;</pre>
<pre class="alt">                 <span class="kwrd">for</span> (<span class="kwrd">int</span> t = 0; t &lt; iterations; t++)</pre>
<pre>                 {</pre>
<pre class="alt">                     <span class="kwrd">if</span> (i == 0)</pre>
<pre>                     {</pre>
<pre class="alt">                         var ids = myList.Where(a =&gt; a &gt; 5).ToList();</pre>
<pre>                     }</pre>
<pre class="alt">                     <span class="kwrd">else</span></pre>
<pre>                     {</pre>
<pre class="alt">                         var ids = <span class="kwrd">new</span> List&lt;<span class="kwrd">int</span>&gt;();</pre>
<pre>                         <span class="kwrd">foreach</span> (var v <span class="kwrd">in</span> myList)</pre>
<pre class="alt">                         {</pre>
<pre>                             <span class="kwrd">if</span> (v &gt; 5)</pre>
<pre class="alt">                             {</pre>
<pre>                                 ids.Add(v);</pre>
<pre class="alt">                             }</pre>
<pre>                         }</pre>
<pre class="alt">                     }</pre>
<pre>                 }</pre>
<pre class="alt">                 stopWatch.Stop();</pre>
<pre>                 <span class="kwrd">int</span> ti = Convert.ToInt32(stopWatch.ElapsedMilliseconds);</pre>
<pre class="alt">                 Console.WriteLine(<span class="str">"time for "</span> + i.ToString() + <span class="str">" "</span> + ti/iterations + <span class="str">" "</span> + ti);</pre>
<pre>                 stopWatch.Reset();</pre>
<pre class="alt">             }</pre>
<pre>         }</pre>
<pre class="alt">     }</pre>
<pre> }</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://peterkellner.net/2009/06/03/linq-in-memory-performance/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Building High Performance ASP.NET Web Applications Downloads</title>
		<link>http://peterkellner.net/2008/06/29/build-high-performance_web-applications-downloads/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=build-high-performance_web-applications-downloads</link>
		<comments>http://peterkellner.net/2008/06/29/build-high-performance_web-applications-downloads/#comments</comments>
		<pubDate>Sun, 29 Jun 2008 20:44:21 +0000</pubDate>
		<dc:creator>Peter Kellner</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://peterkellner.net/2008/06/29/build-high-performance_web-applications-downloads/</guid>
		<description><![CDATA[<br /><p>Downloads for my presentation to BAADD titled "Building High Performance ASP.NET Web Applications".</p><br />]]></description>
			<content:encoded><![CDATA[<p>This past Wednesday, June 25th 2008, I did a presentation titled &#8220;<a href="http://peterkellner.net/2008/06/17/speaking-microsoft-office-june-25-2008-high-perf-aspnet/">Building High Performance ASP.NET Web Applications</a>&#8221; to the <a href="http://www.baadd.org/NET/tabid/56/Default.aspx">Bay Area Association of Database Developers (BAADD)</a>.&nbsp; Through out the presentation, I showed an application in <a href="http://msdn.microsoft.com/en-us/vstudio/products/aa700831.aspx">Visual Studio 2008</a>.&nbsp; I&#8217;m including that project file here as well as the power point slides used in the demonstration.</p>
<p>
<div class="wlWriterSmartContent" id="scid:18d43e01-4549-4fde-8ca6-c7b4b7385fac:9de1aefe-7d0d-40e3-b35c-603413b65c45" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<p>Download Solution &#8211; <a href="http://peterkellner.net/wp/wp-content/uploads/2008/06/heuristiccache2.zip">HeuristicCache.zip</a></p>
</div>
<p>And the Power Point Presentation:</p>
<p>
<div class="wlWriterSmartContent" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:dfb47607-6296-4d5c-8edf-cd4e933fca8f" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<p> <a href="http://peterkellner.net/wp/wp-content/uploads/2008/06/ppwebhigh2.pdf" target="_blank">Power Point Presentation</a></p>
</div>
<p>Any Questions, feel free to contact me at <a title="http://peterkellner.net/contact/" href="http://peterkellner.net/contact/">http://peterkellner.net/contact/</a></p>
<p><u><font color="#669966"></font></u></p>
]]></content:encoded>
			<wfw:commentRss>http://peterkellner.net/2008/06/29/build-high-performance_web-applications-downloads/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Speaking Next Week (Wednesday 6/25) At Microsoft Office in San Francisco</title>
		<link>http://peterkellner.net/2008/06/17/speaking-microsoft-office-june-25-2008-high-perf-aspnet/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=speaking-microsoft-office-june-25-2008-high-perf-aspnet</link>
		<comments>http://peterkellner.net/2008/06/17/speaking-microsoft-office-june-25-2008-high-perf-aspnet/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 16:02:33 +0000</pubDate>
		<dc:creator>Peter Kellner</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[Scalability]]></category>
		<category><![CDATA[asp.net performance]]></category>
		<category><![CDATA[asp.net scaling]]></category>
		<category><![CDATA[speaking asp.net]]></category>

		<guid isPermaLink="false">http://peterkellner.net/2008/06/17/speaking-microsoft-office-june-25-2008-high-perf-aspnet/</guid>
		<description><![CDATA[<br />
<p>Speaking at  835 Market Street, Suite 700 on Building High performance ASP.NET web applications - In this meeting, Peter Kellner will present on and discuss techniques and methodologies for developing highly performant and scalable web sites.</p>
<br />]]></description>
			<content:encoded><![CDATA[<p><a title="http://www.baadd.org/NET/tabid/56/Default.aspx" href="http://www.baadd.org/NET/tabid/56/Default.aspx">http://www.baadd.org/NET/tabid/56/Default.aspx</a></p>
<p>June Meeting &#8211; Wednesday, June 25, 2008</p>
<p>Remember Our New Location:&#160; 835 Market Street, Suite 700.</p>
<p> <span id="more-117"></span><br />
<h2>Building High performance ASP.NET web applications &#8211; In this meeting, Peter Kellner will present on and discuss techniques and methodologies for developing highly performant and scalable web sites. </h2>
<p>Topics will&#160; include appropriate use of Cache and Session State, as well as how and when to use them.&#160; Viewstate management and methods to minimize its use will be discussed.&#160; Code to pop up a warning when a threshold is met in development will be shown.&#160; When and how to take advantage of Server Farms will be discussed, as well as trouble shooting techniques to find problems. The evils of Server Affinity,&#160; as well as a common pattern for caching database queries will be shown to be wrong.&#160; Time permitting, we will talk about using Microsoft&#8217;s Ajax.asp.net with UpdatePanel and webservices and how these affect performance and scalability.</p>
<p><a href="http://peterkellner.net/wp/wp-content/uploads/2008/06/baad.png"><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="baad" src="http://peterkellner.net/wp/wp-content/uploads/2008/06/baad-thumb.png" width="406" height="401" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://peterkellner.net/2008/06/17/speaking-microsoft-office-june-25-2008-high-perf-aspnet/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced (User agent is rejected)
Database Caching 33/38 queries in 0.007 seconds using disk: basic
Content Delivery Network via Amazon Web Services: S3: PetersBlogCDN.s3.amazonaws.com

Served from: peterkellner.net @ 2012-05-22 10:48:54 -->
