From a hardware (CPU) point of view, pointer scans are bad for performance because data reading is actually serialized on the CPU (i.e. without ILP). You cannot start reading (i.e. Load instr) until the previous one is completed (since the previous load gives us the address for the next load, etc.).
source
share