Keep in mind that any language (or other software system) which uses double indirection and dynamic code evaluation runs into issues of optimizing for memory and of maximizing cache hits. In fact, evaluation of dynamically-generated code often requires a complete flushing of the cache. The best we can hope for is to minimize ill effects of the neat tools modern languages give us. We can't ask for things to improve programmer time which are contrary to the needs of the hardware and expect to also have the software ideally suited to the hardware's implementation.
in reply to Out-Of-Date Optimizations? New Idioms? RAM vs. CPU
Christopher E. Stith