1. A method for determining performance characteristics of a system, comprising: executing a program to cause data to be exchanged between at least two devices of the system via a bus; capturing events indicative of data exchanged between the at least two devices by at least one interface monitor; calculating one or more performance metrics based on the captured events during execution of the program; storing, on a computer readable storage medium, the calculated performance metrics in a database; and determining whether the calculated performance metrics fall within a determined performance range.