Loop hardening strategically inserts duplicate instructions to detect irregularities in the execution (perhaps caused by some sort of malicious outside interference). This incurrs a performance overhead. This table illustrates this performance impact on a variety of real-world programs (taken from GNU coreutils).
| Program | Hardened | Mean Runtime (ms) | Standard Deviation |
|---|---|---|---|
| wc | Yes | 1.7 | 0.5 |
| No | 1.1 | 0.4 | |
| uniq | Yes | 0.6 | 0.4 |
| No | 0.1 | 0.5 | |
| readlink | Yes | 2.6 | 0.4 |
| No | 2.0 | 0.8 | |
| cat | Yes | 1.5 | 0.6 |
| No | 1.4 | 0.2 | |
| basename | Yes | 3.5 | 0.2 |
| No | 2.5 | 0.3 |