<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments for The Missing Docs .Net</title>
	<atom:link href="http://www.themissingdocs.net/wordpress/?feed=comments-rss2" rel="self" type="application/rss+xml" />
	<link>http://www.themissingdocs.net/wordpress</link>
	<description>Finding the holes in the Net</description>
	<lastBuildDate>Fri, 04 May 2012 09:29:23 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>Comment on BindingList does not scale&#8230; by Tilps</title>
		<link>http://www.themissingdocs.net/wordpress/?p=465&#038;cpage=1#comment-17531</link>
		<dc:creator>Tilps</dc:creator>
		<pubDate>Fri, 04 May 2012 09:29:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.themissingdocs.net/wordpress/?p=465#comment-17531</guid>
		<description>I won&#039;t go into the specifics, but yes it is a lot of updates.  The vast majority of them will be of no use to the user, but any specific one could be - depending on where the user is looking.  Yes there could be more complex design strategies which work better, and if the number of changes gets a lot worse it would be crazy not to investigate them - but for the point I am at, a simple replacement of BindingList fixes its scaling problem and gives me plenty of scope for even more updates.</description>
		<content:encoded><![CDATA[<p>I won&#8217;t go into the specifics, but yes it is a lot of updates.  The vast majority of them will be of no use to the user, but any specific one could be &#8211; depending on where the user is looking.  Yes there could be more complex design strategies which work better, and if the number of changes gets a lot worse it would be crazy not to investigate them &#8211; but for the point I am at, a simple replacement of BindingList fixes its scaling problem and gives me plenty of scope for even more updates.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on BindingList does not scale&#8230; by Brendan</title>
		<link>http://www.themissingdocs.net/wordpress/?p=465&#038;cpage=1#comment-17522</link>
		<dc:creator>Brendan</dc:creator>
		<pubDate>Thu, 03 May 2012 23:32:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.themissingdocs.net/wordpress/?p=465#comment-17522</guid>
		<description>Are you saying you have in the region of 5K changes per second and you wish to show these &quot;live&quot;?  This sounds more like an animation than a data binding.</description>
		<content:encoded><![CDATA[<p>Are you saying you have in the region of 5K changes per second and you wish to show these &#8220;live&#8221;?  This sounds more like an animation than a data binding.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on BindingList does not scale&#8230; by Tilps</title>
		<link>http://www.themissingdocs.net/wordpress/?p=465&#038;cpage=1#comment-17514</link>
		<dc:creator>Tilps</dc:creator>
		<pubDate>Thu, 03 May 2012 12:37:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.themissingdocs.net/wordpress/?p=465#comment-17514</guid>
		<description>Lets drop that size back to 100k elements to be more reasonable.  Now your updates only take 1 milisecond each.
If you have 1 update per minute for each element, you are using 150% cpu.  That is only 1 update a minute per element.
Drop it back to 10k elements, definitely not uncommon at all, now you can do 1 update per element every second.
In the high performance environments I&#039;m in, 5 updates per second per element on average, is probably more likely (and desired to be shown, so batching the event raising in the back-end won&#039;t help).  I might be able to manage 3k elements max, and that is pegging 1 cpu completely just passing the events through the binding list.  That doesn&#039;t account for any drawing cost for the UI, any ability for the user to perform actions if there is some small extra high spike of activity.

And this 100% cpu usage can be dropped to practically 0, just by taking a small hit to memory overhead and using the proper data structure.</description>
		<content:encoded><![CDATA[<p>Lets drop that size back to 100k elements to be more reasonable.  Now your updates only take 1 milisecond each.<br />
If you have 1 update per minute for each element, you are using 150% cpu.  That is only 1 update a minute per element.<br />
Drop it back to 10k elements, definitely not uncommon at all, now you can do 1 update per element every second.<br />
In the high performance environments I&#8217;m in, 5 updates per second per element on average, is probably more likely (and desired to be shown, so batching the event raising in the back-end won&#8217;t help).  I might be able to manage 3k elements max, and that is pegging 1 cpu completely just passing the events through the binding list.  That doesn&#8217;t account for any drawing cost for the UI, any ability for the user to perform actions if there is some small extra high spike of activity.</p>
<p>And this 100% cpu usage can be dropped to practically 0, just by taking a small hit to memory overhead and using the proper data structure.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on BindingList does not scale&#8230; by Brendan</title>
		<link>http://www.themissingdocs.net/wordpress/?p=465&#038;cpage=1#comment-17505</link>
		<dc:creator>Brendan</dc:creator>
		<pubDate>Thu, 03 May 2012 01:52:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.themissingdocs.net/wordpress/?p=465#comment-17505</guid>
		<description>I am not sure I see this. Since the underlying collection will be implemented as a linear array, if the collection contains a reference type with default equality, walking the list should be fairly efficient. On my machine (64 bit, 2GHz) a binding list with 10 million items can raise an event on the last item in about 100msec, which does not seem terrribly slow to me for something binding to the UI.</description>
		<content:encoded><![CDATA[<p>I am not sure I see this. Since the underlying collection will be implemented as a linear array, if the collection contains a reference type with default equality, walking the list should be fairly efficient. On my machine (64 bit, 2GHz) a binding list with 10 million items can raise an event on the last item in about 100msec, which does not seem terrribly slow to me for something binding to the UI.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Expression is Interesting by Alex</title>
		<link>http://www.themissingdocs.net/wordpress/?p=471&#038;cpage=1#comment-16068</link>
		<dc:creator>Alex</dc:creator>
		<pubDate>Sun, 12 Feb 2012 01:26:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.themissingdocs.net/wordpress/?p=471#comment-16068</guid>
		<description>Nifty!</description>
		<content:encoded><![CDATA[<p>Nifty!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on List.Contains Considered Harmful by Tilps</title>
		<link>http://www.themissingdocs.net/wordpress/?p=462&#038;cpage=1#comment-14239</link>
		<dc:creator>Tilps</dc:creator>
		<pubDate>Thu, 10 Nov 2011 10:25:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.themissingdocs.net/wordpress/?p=462#comment-14239</guid>
		<description>I&#039;d still rather they used the right data structure in the first place instead :)</description>
		<content:encoded><![CDATA[<p>I&#8217;d still rather they used the right data structure in the first place instead <img src='http://www.themissingdocs.net/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on List.Contains Considered Harmful by Pete</title>
		<link>http://www.themissingdocs.net/wordpress/?p=462&#038;cpage=1#comment-14238</link>
		<dc:creator>Pete</dc:creator>
		<pubDate>Thu, 10 Nov 2011 09:27:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.themissingdocs.net/wordpress/?p=462#comment-14238</guid>
		<description>&quot;If we forced everyone to write the double nested loop...&quot; Sadly, I think if we forced everyone to write double nested loops then that&#039;s exactly what they&#039;d do.

What would be nice is if there was an ICollection.AddRangeDistinct extension method, or something like that, where you could pass in an enumerable and have it add items to the collection that aren&#039;t already there. (And presumably it would do the &#039;right thing&#039;.)</description>
		<content:encoded><![CDATA[<p>&#8220;If we forced everyone to write the double nested loop&#8230;&#8221; Sadly, I think if we forced everyone to write double nested loops then that&#8217;s exactly what they&#8217;d do.</p>
<p>What would be nice is if there was an ICollection.AddRangeDistinct extension method, or something like that, where you could pass in an enumerable and have it add items to the collection that aren&#8217;t already there. (And presumably it would do the &#8216;right thing&#8217;.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on List.Contains Considered Harmful by Alex</title>
		<link>http://www.themissingdocs.net/wordpress/?p=462&#038;cpage=1#comment-14226</link>
		<dc:creator>Alex</dc:creator>
		<pubDate>Wed, 09 Nov 2011 21:23:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.themissingdocs.net/wordpress/?p=462#comment-14226</guid>
		<description>Guilty and noted. :-&#124;</description>
		<content:encoded><![CDATA[<p>Guilty and noted. <img src='http://www.themissingdocs.net/wordpress/wp-includes/images/smilies/icon_neutral.gif' alt=':-|' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on WindowsIdentity by Josh</title>
		<link>http://www.themissingdocs.net/wordpress/?p=64&#038;cpage=1#comment-13953</link>
		<dc:creator>Josh</dc:creator>
		<pubDate>Thu, 20 Oct 2011 21:05:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.themissingdocs.net/wordpress/?p=64#comment-13953</guid>
		<description>Hey Tilps,

   I actually just found the issue and since I posted the problem, I figured I&#039;d post the solution. 

   The WindowsIdentity.GetCurrent() returns a WindowsIdentity. The code example on MSDN was calling WindowsIdentity.GetCurrent().Name and posting it to the console. This call to GetCurrent() still creates an object in memory and since we don&#039;t have a reference we can&#039;t properly dispose of it. 

   To remedy this, every time the example used GetCurrent().Name, I stored the WindowsIdentity reference, used its Name property, then called Dispose() on it. If you re-use the same reference for each of the three calls, then you must call Dispose() in between each re-assignment or a reference will be left in memory.

   Sorry about the posts but I hate to post a question and not post an answer for future blog readers!</description>
		<content:encoded><![CDATA[<p>Hey Tilps,</p>
<p>   I actually just found the issue and since I posted the problem, I figured I&#8217;d post the solution. </p>
<p>   The WindowsIdentity.GetCurrent() returns a WindowsIdentity. The code example on MSDN was calling WindowsIdentity.GetCurrent().Name and posting it to the console. This call to GetCurrent() still creates an object in memory and since we don&#8217;t have a reference we can&#8217;t properly dispose of it. </p>
<p>   To remedy this, every time the example used GetCurrent().Name, I stored the WindowsIdentity reference, used its Name property, then called Dispose() on it. If you re-use the same reference for each of the three calls, then you must call Dispose() in between each re-assignment or a reference will be left in memory.</p>
<p>   Sorry about the posts but I hate to post a question and not post an answer for future blog readers!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on WindowsIdentity by Tilps</title>
		<link>http://www.themissingdocs.net/wordpress/?p=64&#038;cpage=1#comment-13952</link>
		<dc:creator>Tilps</dc:creator>
		<pubDate>Thu, 20 Oct 2011 20:50:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.themissingdocs.net/wordpress/?p=64#comment-13952</guid>
		<description>I don&#039;t have anything useful for you sorry.  Without knowing how the profiler determines the scenario I can&#039;t be sure, but it sounds like a false positive, or a miss identification of the location of allocation of the WindowsIdentity object which is not being disposed. (Maybe it isn&#039;t even in your code.)</description>
		<content:encoded><![CDATA[<p>I don&#8217;t have anything useful for you sorry.  Without knowing how the profiler determines the scenario I can&#8217;t be sure, but it sounds like a false positive, or a miss identification of the location of allocation of the WindowsIdentity object which is not being disposed. (Maybe it isn&#8217;t even in your code.)</p>
]]></content:encoded>
	</item>
</channel>
</rss>

