TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

What every programmer should know about memory (2007)

119 pointsby jimsojimover 9 years ago

14 comments

dangover 9 years ago
<a href="https:&#x2F;&#x2F;hn.algolia.com&#x2F;?query=What%20every%20programmer%20should%20know%20about%20memory&amp;sort=byDate&amp;dateRange=all&amp;type=story&amp;storyText=false&amp;prefix&amp;page=0" rel="nofollow">https:&#x2F;&#x2F;hn.algolia.com&#x2F;?query=What%20every%20programmer%20sh...</a>
asgard1024over 9 years ago
What every programmer should know about memory:<p>Even though it may not seem so at first, memory is very lossy, especially in old age. So, write comments, write documentation, make notes. Diagrams help too.<p>It&#x27;s best to acquire these skills at early age, since at older age memory stores also require more cycles.<p>There are also ways to boost memory. One option is that emotionally charged events are very well remembered. Thus, don&#x27;t be afraid to experiment; the bigger mistake you make, the better you will remember it.<p>Edit: Ah, nevermind. Apparently this is a different type of memory that programmers have to deal with. Still, I hope this advice was useful.
ilurkover 9 years ago
Obligatory &quot;Latency Numbers Every Programmer Should Know&quot;<p><a href="http:&#x2F;&#x2F;www.eecs.berkeley.edu&#x2F;~rcs&#x2F;research&#x2F;interactive_latency.html" rel="nofollow">http:&#x2F;&#x2F;www.eecs.berkeley.edu&#x2F;~rcs&#x2F;research&#x2F;interactive_laten...</a>
wyldfireover 9 years ago
What every programmer should know: large capacity and blazing fast NAND is poised to change everything you used to know. JEDEC is working on standardizing large capacity NVDIMMs [1][2][3], and that will probably mean at the very least a new tier in this hierarchy. And perhaps changes to swap, filesystems, databases, and boot&#x2F;initialization will come to capitalize on this new tier.<p>[1] <a href="https:&#x2F;&#x2F;www.jedec.org&#x2F;news&#x2F;pressreleases&#x2F;jedec-announces-support-nvdimm-hybrid-memory-modules" rel="nofollow">https:&#x2F;&#x2F;www.jedec.org&#x2F;news&#x2F;pressreleases&#x2F;jedec-announces-sup...</a><p>[2] <a href="http:&#x2F;&#x2F;www.jedec.org&#x2F;sites&#x2F;default&#x2F;files&#x2F;files&#x2F;Brett_Williams_Server_Forum_2014.pdf" rel="nofollow">http:&#x2F;&#x2F;www.jedec.org&#x2F;sites&#x2F;default&#x2F;files&#x2F;files&#x2F;Brett_William...</a><p>[3] <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;NVDIMM" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;NVDIMM</a>
评论 #10602464 未加载
评论 #10602931 未加载
fmstepheover 9 years ago
I would love to read an updated version of this. The fundamentals won&#x27;t have changed much. But the details are changing and Urlich went into a lot of detail in this doc.<p>Great Read.
评论 #10602080 未加载
thecatspawover 9 years ago
this is way to low level for every programmer to know. While there probably is some use for this, the average java&#x2F;python&#x2F;ruby&#x2F;node.js programmer will never need this information.<p>When working with embedded systems this information is more usefull, but very few programmers actually do work in that industry compared to others, e.g. web
评论 #10602554 未加载
评论 #10602576 未加载
评论 #10602976 未加载
评论 #10603205 未加载
评论 #10605265 未加载
评论 #10602408 未加载
pvgover 9 years ago
That one is quite the evergreen (and probably needs a &#x27;2007&#x27;):<p><a href="https:&#x2F;&#x2F;hn.algolia.com&#x2F;?query=what%20every%20programmer%20should%20know%20about%20memory&amp;sort=byPopularity&amp;prefix&amp;page=0&amp;dateRange=all&amp;type=story" rel="nofollow">https:&#x2F;&#x2F;hn.algolia.com&#x2F;?query=what%20every%20programmer%20sh...</a>
gpvosover 9 years ago
Article is from 2007. (And as someone else writes, details have changed and the article is rather detailed.)
评论 #10602724 未加载
评论 #10602101 未加载
petewailesover 9 years ago
On a similar note, for the difference in timings and sizes on a scale you can relate to, is this:<p><a href="https:&#x2F;&#x2F;plus.google.com&#x2F;+PeterBurnsrictic&#x2F;posts&#x2F;LvhVwngPqSC" rel="nofollow">https:&#x2F;&#x2F;plus.google.com&#x2F;+PeterBurnsrictic&#x2F;posts&#x2F;LvhVwngPqSC</a>
mud_dauberover 9 years ago
Memory product guy here.<p>Great content &amp; relatively current. FWIW, the subject gets even more interesting if you consider how switches &amp; routers manage the flow of packets. The memory hierarchy gets even more esoteric.<p>Regarding the &quot;this is too low level for programmers&quot; comment: only if you don&#x27;t need to understand how latency, bandwidth &amp; power works at a fundamental level. Every programmer I know <i>wants</i> to understand this stuff.
jherikoover 9 years ago
there are just three things i wish programmers knew about memory... none of them are especially low-level or require depth of understanding.<p>never dynamically allocate it unless forced.<p>really. never allocate at run-time it unless you are absolutely forced by your algorithm.<p>if you absolutely really must allocate memory on the fly, have a budget so you can do one big up-front allocation and carefully reuse it. even better, don&#x27;t allocate it to start with.
评论 #10602053 未加载
评论 #10602280 未加载
评论 #10602068 未加载
评论 #10602317 未加载
评论 #10602882 未加载
draw_downover 9 years ago
Definitely start off with a huge preamble about the olden days and document structure and how to report problems. Sheesh
Dowwieover 9 years ago
wait.. I have to know ALL of this?! is there a TL;DR?
mwnzover 9 years ago
Again?