<story><title>Small Memory Software: Patterns for systems with limited memory</title><url>http://www.smallmemory.com/book.html</url></story><parent_chain></parent_chain><comment><author>userbinator</author><text>The one thing that I was strongly expecting but didn&amp;#x27;t seem to find any mention of when I was quickly paging through is the idea of using simpler, constant-space algorithms (e.g. streaming style, keeping only what&amp;#x27;s needed in memory) and in general &lt;i&gt;reducing the amount of code and data&lt;/i&gt;.&lt;p&gt;Likewise, the use of C++ and Java in a book about &amp;quot;limited memory&amp;quot; is a bit unusual.&lt;p&gt;Then again, I&amp;#x27;m &lt;i&gt;really&lt;/i&gt; not keen on the whole &amp;quot;patterns&amp;quot; thing, because from experience I&amp;#x27;ve found it tends to replace careful thought with dogmatic application of rules that might not be relevant at all to the situation at hand.</text></comment>
<story><title>Small Memory Software: Patterns for systems with limited memory</title><url>http://www.smallmemory.com/book.html</url></story><parent_chain></parent_chain><comment><author>ChuckMcM</author><text>I realize that small memory discipline is not something that serves a modern programmer well. Spending time on optimizing memory usage is often completely useless as a new version or new feature will invalidate the effort and the overall effect on the system, compared to other work the programmer could be doing, would not be cost effective.&lt;p&gt;That said, understanding how to design in tight memory constraints is useful. While typically only seriously practiced by embedded systems developers, having habits that minimize memory use can have a large impact at scale. The paper gives some good reasons on what the benefits of those habits are, but I also think that, as a percentage of the total, programmers living in constrained memory spaces are a specialization not the mainstream any more.</text></comment>