<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>MemMaker for the .NET Compact Framework</title><link>http://blogs.msdn.com/b/robtiffany/archive/2009/04/09/memmaker-for-the-net-compact-framework.aspx</link><description>Does everyone remember the good old days of DOS when we used to spend our time making more of the 640 KB memory space available for our drivers, programs, TSRs and even Windows? Things like QEMM, HIMEM.SYS and EMM386.EXE bring back fond memories for me</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>re: MemMaker for the .NET Compact Framework</title><link>http://blogs.msdn.com/b/robtiffany/archive/2009/04/09/memmaker-for-the-net-compact-framework.aspx#10163603</link><pubDate>Thu, 12 May 2011 01:47:21 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10163603</guid><dc:creator>achellies</dc:creator><description>&lt;p&gt;Do this tech available for the native exes and dlls, i want to use the webkit under windows CE 5.0, but th webkit&amp;#39;s image is so large, so i want to use the technology mentioned in this article, do it available for the native exes and dlls?&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10163603" width="1" height="1"&gt;</description></item><item><title>re: MemMaker for the .NET Compact Framework</title><link>http://blogs.msdn.com/b/robtiffany/archive/2009/04/09/memmaker-for-the-net-compact-framework.aspx#10030155</link><pubDate>Fri, 25 Jun 2010 14:51:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10030155</guid><dc:creator>Sesham</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;this is really a cool article, thanks for posting.&lt;/p&gt;
&lt;p&gt;I tried to use this technique on a sample application , I moved all the code to a managed dll.(code in the dll &amp;nbsp;keeps creating bitmaps dynamically in a thread) &amp;nbsp;&lt;/p&gt;
&lt;p&gt;dll code&lt;/p&gt;
&lt;p&gt; &amp;nbsp; private void eatMem_Click(object sender, EventArgs e)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//if (screenBuffer != null)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// &amp;nbsp; &amp;nbsp;screenBuffer.Dispose();&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;screenBuffer = null;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;screenBuffer = new Bitmap(1600, 480);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private void threadStart_Click(object sender, EventArgs e)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ThreadStart ts = new ThreadStart(test);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Thread t = new Thread(ts);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;t.Start();&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ThreadStart tsalloc = new ThreadStart(alloc);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Thread talloc = new Thread(tsalloc);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;talloc.Start();&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;void test()&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; 1000000000; i++)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.Invoke(new SetText(settext));&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.Threading.Thread.Sleep(1000);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;void alloc()&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; 1000000000; i++)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.Invoke(new EventHandler(eatMem_Click));&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.Threading.Thread.Sleep(1000);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;static int ctr = 1;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;void settext()&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;label1.Text = ctr.ToString();&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctr++;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt;exe code&lt;/p&gt;
&lt;p&gt;using memmoryTestDll;&lt;/p&gt;
&lt;p&gt;namespace memmoryTest&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;static class Program&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/// &amp;lt;summary&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/// The main entry point for the application.&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/// &amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[MTAThread]&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;static void Main()&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;memmoryTestDll.OptimizedDLL.StartUp.Main();&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;I &amp;nbsp;did not see any difference , am i missing something?&lt;/p&gt;
&lt;p&gt; the application runs of memory after allocating around 38 bitmaps&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10030155" width="1" height="1"&gt;</description></item><item><title>re: MemMaker for the .NET Compact Framework</title><link>http://blogs.msdn.com/b/robtiffany/archive/2009/04/09/memmaker-for-the-net-compact-framework.aspx#9948743</link><pubDate>Fri, 15 Jan 2010 01:10:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9948743</guid><dc:creator>Walter</dc:creator><description>&lt;p&gt;Sounds neat, but didn't seem to do anything for me either. &amp;nbsp;Maybe there are some other things going on here that we cannot see. &amp;nbsp;&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9948743" width="1" height="1"&gt;</description></item><item><title>re: MemMaker for the .NET Compact Framework</title><link>http://blogs.msdn.com/b/robtiffany/archive/2009/04/09/memmaker-for-the-net-compact-framework.aspx#9923537</link><pubDate>Tue, 17 Nov 2009 12:35:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9923537</guid><dc:creator>Sean Solt</dc:creator><description>&lt;p&gt;Hi Rob!&lt;/p&gt;
&lt;p&gt;I need a little support. I have a really huge .NET cf application. I fight with the memory limit for a while. I tried your method and used the memory mapper program to watch the changes but there were nothing changed. I put my program completly to a DLL as you advised and call it from an &amp;quot;empty&amp;quot; exe but the memory map remained the same as before the change. What can be the problem? (using WM5).&lt;/p&gt;
&lt;p&gt;Thank: Sean&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9923537" width="1" height="1"&gt;</description></item><item><title>re: MemMaker for the .NET Compact Framework</title><link>http://blogs.msdn.com/b/robtiffany/archive/2009/04/09/memmaker-for-the-net-compact-framework.aspx#9844412</link><pubDate>Wed, 22 Jul 2009 08:20:39 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9844412</guid><dc:creator>Faiyaz</dc:creator><description>&lt;p&gt;Great finding sir. &amp;nbsp;Thanks for sharing the info. &amp;nbsp;Hope some of my issues will now be resolved.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9844412" width="1" height="1"&gt;</description></item><item><title>re: MemMaker for the .NET Compact Framework</title><link>http://blogs.msdn.com/b/robtiffany/archive/2009/04/09/memmaker-for-the-net-compact-framework.aspx#9836341</link><pubDate>Fri, 17 Jul 2009 04:01:17 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9836341</guid><dc:creator>robtiffany</dc:creator><description>&lt;p&gt;I'm just glad to see folks from our mobile community are observant and curious and therefore point out bugs in our system. &amp;nbsp;It's also nice to see people put forth workarounds to help everyone else. &amp;nbsp;Raffaele Limosani in Italy was on to this issue over a year ago when he made it public on his blog. &amp;nbsp;He knew that managed exe's whould take up slot space equal to their file size and that managed dll's wouldn't, which leads to the workaround of putting all your code in dll's. &amp;nbsp;The only reason we're even talking about this issue is because Windows Mobile 6.x still uses our older version of Windows CE 5.0 and not our current version where this has been fixed. &amp;nbsp;Thanks to Brian, &amp;nbsp;Raffaele and all those inside Microsoft who have made subtle memory issues clearer to our developers.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9836341" width="1" height="1"&gt;</description></item><item><title>re: MemMaker for the .NET Compact Framework</title><link>http://blogs.msdn.com/b/robtiffany/archive/2009/04/09/memmaker-for-the-net-compact-framework.aspx#9834500</link><pubDate>Wed, 15 Jul 2009 20:53:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9834500</guid><dc:creator>simon.tamman</dc:creator><description>&lt;p&gt;Brilliant, and it just so happens that due to my rather pedantic architecture hat I have already done this (without even realising the virtual memory saving feature it provides). Our .exe just creates an instance of &amp;quot;App&amp;quot; and runs. :)&lt;/p&gt;
&lt;p&gt;Nice to know this though. It may help some other projects here!&lt;/p&gt;
&lt;p&gt;Reggies&lt;/p&gt;
&lt;p&gt;Jax&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9834500" width="1" height="1"&gt;</description></item><item><title>More Memory for ALL in WM 6.x</title><link>http://blogs.msdn.com/b/robtiffany/archive/2009/04/09/memmaker-for-the-net-compact-framework.aspx#9725037</link><pubDate>Thu, 11 Jun 2009 00:13:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9725037</guid><dc:creator>The Windows Mobile RSS (Reed and Steve Stuff) Feed</dc:creator><description>&lt;p&gt;Now that the Windows Mobile 6.5 DTK is available, you are probably starting to discover some of the new&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9725037" width="1" height="1"&gt;</description></item><item><title>MemMaker для .NET Compact Framework</title><link>http://blogs.msdn.com/b/robtiffany/archive/2009/04/09/memmaker-for-the-net-compact-framework.aspx#9675043</link><pubDate>Mon, 01 Jun 2009 09:14:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9675043</guid><dc:creator>Русский блог Windows Mobile</dc:creator><description>&lt;p&gt;MemMaker для .NET Compact Framework Оригинал: &lt;a rel="nofollow" target="_new" href="http://blogs.msdn.com/robtiffany/archive/2009/04/09/memmaker-for-the-net-compact-framework.aspx"&gt;http://blogs.msdn.com/robtiffany/archive/2009/04/09/memmaker-for-the-net-compact-framework.aspx&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9675043" width="1" height="1"&gt;</description></item><item><title>re: MemMaker for the .NET Compact Framework</title><link>http://blogs.msdn.com/b/robtiffany/archive/2009/04/09/memmaker-for-the-net-compact-framework.aspx#9665758</link><pubDate>Sat, 30 May 2009 18:53:50 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9665758</guid><dc:creator>Andrew Konovalov</dc:creator><description>&lt;p&gt;Short amendment regarding not using &amp;quot;other 32Mb&amp;quot;. It really meant to be the particular memory range &amp;nbsp;0x2000000-0x4000000 (the XIP location).&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9665758" width="1" height="1"&gt;</description></item></channel></rss>