循环展开（Loop unwinding或loop unrolling），是一种牺牲程序的尺寸来加快程序的执行速度的优化方法。可以由程序员完成，也可由编译器自动优化完成。循环展开最常用来降低循环开销，为具有多个功能单元的处理器提供指令级并行。也有利于指令流水线的调度。
例子.for (i = 1; i <= 60; i++) 可以如此循环展开：for (i = 1; i <= 58; i+=3)这被称为展开了两次。