There is nothing new under the sun.
The reasons code is slow invariably come down to familiar issues. This is especially true for us Ruby developers. We are far removed from writing bare-metal code. We heavily use language features, standard libraries, gems, and frameworks. And each of these brings along its performance issues. Some of these are actually memory inefficient by design! We should be extremely careful about how we write our code and what features or libraries we use.
We have talked about two of the common reasons for poor performance in the previous chapter: extra memory allocation and data structure copying. What are the others?
Execution context copying, memory-heavy iterators, slow ...