Mechanizm Duffa – w informatyce jest zoptymalizowaną wersją kopiowania jednej tablicy do drugiej. Używa do tego metody szeroko stosowanej w assemblerze polegającej na odwijaniu pętli. Wynalezienie tej metody dla języka C jest przypisywane Tomowi Duffowi (listopad 1983). W praktyce jednak stosowanie tej metody przy tworzeniu programów nie jest konieczne, ponieważ większość współczesnych kompilatorów sama optymalizuje kod w ten sposób.
Działanie Przykład prostego kopiowania dwóch tablic znakowych wykonuje test zakończenia działania po przepisaniu każdego elementu: void kopiuj(char *wej, char *wyj, int krotnosc) { while (krotnosc-- > 0) { *wyj++ = *wej++;
Mechanizm Duffa pozwala wyeliminować dużą część niepotrzebnych sprawdzeń: void kopiuj(char *wej, char *wyj, int krotnosc) { int n = (krotnosc + 7) / 8; switch (krotnosc % 8) { case 0: do { *wyj++ = *wej++; case 7: *wyj++ = *wej++; case 6: *wyj++ = *wej++; case 5: *wyj++ = *wej++; case 4: *wyj++ = *wej++; case 3: *wyj++ = *wej++; case 2: *wyj++ = *wej++; case 1: *wyj++ = *wej++; } while (--n > 0);