Duff's device
連続コピーを普通にコーディングすると以下のようになる。
ダフの本来の意図はメモリマップされた周辺機器の出力レジスタへのコピーだったため、to がインクリメントされていない。
これを最適化するにあたり、ダフは、switch 文と do ループを組み合わせた構造によってループ展開ができると気づいた。
Duff's device は、8に限らずどのようなサイズのループ展開にも応用可能である。
このような剰余の自動処理は全てのシステムやコンパイラで最良な手段となるわけではない。場合によってはループを2つに分けたり(1つのループは展開されていて大部分のコピーを行い、2つめのループで残りのコピーを行う)、ループ展開をやめる方が高速である。コンパイラがこのコードを正しく最適化するかどうかも問題であるが、一部のマイクロプロセッサではパイプラインや分岐予測がうまく働かないという指摘もある。かつてXFree86は Duff's device を多用していたが、バージョン4.0でそれらループ展開の大部分を排除して展開前の小さなループに戻すことで、キャッシュヒット率を向上させ性能を向上させたことがある。したがって、このコードを使う前にいくつかベンチマークを行って、対象アーキテクチャの対象コンパイラの対象最適化レベルで最も性能の良いコードを選ぶ方がよいだろう。