Mon Aug 12 12:35:58 EDT 2013

Premature memory optimization

It seems that in deeply embedded software design, it is possible to
save a lot of memory by replacing buffering with control flow.
Essentially there are two kinds of buffers:

- Limits set by hardware, e.g. USB endpoint buffer sizes

- Limits set by software, e.g. communication between different API
  layers and tasks.

Memory usage inefficiency comes from the second part.  It's almost
always possible to eliminate (deforest?) buffers and handle data