One technique I've meant to use for a long time and am about to get serious about is to have performance tests run as part of continuous integration so that regressions in performance (throughput and latency) can be detected and "blamed" on specific code changes.