Best Practices |
 |
2025-02-23 |
 |
 |

34 |
 |
 |
All Hail Valgrind!
Valgrind Tools
- • Memcheck
- • Addrcheck
- • Cachegrind
- • Helgrind
Also make sure you use an atomic file deployment mechanism like rsync or mv.
Never tar or cp files to their final destinations on a running production server.
Beware of cache slams
When a file is modified on a busy server there is a race to compile and cache the
new file. This can put a drain on your server and its resources. Because APC uses
the device+inode as the hash, you can make use of that in your file update strategy.
Write new files to a temporary filename or perhaps a temporary directory, hit it once,
then rename it to its publically visible location. mtime does not change on a rename
as long as you are not moving it from one fs to another.