By realneel on May 06, 2008
How does uperf help customers?
Often we hear customers complain about not getting good results with their application even though the results with micro-benchmarks were quite good. This is mainly because well known micro-benchmarks do very specific things like measuring bulk throughput or latency and do not really model the customer's application. Using micro-benchmarks does help standardize performance results, but the customer cannot really draw assumptions, based on these standard benchmarks, about how their application will perform. The safest alternative is to run their application to determine the performance. This maybe very time consuming and may require a lot of setup. uperf allows the customer to specify a description(profile) of what their application does and stress the system using this description. Using a profile has some additional benefits like you could modify the profile slightly to determine the effects of using a different protocol, etc..
How does uperf help developers?
Customers rarely want to share their application or it is just too time consuming to get their application and measure their performance in our labs, We are often left with a description of what the application is doing. uperf can take [a modified version of] this description and run whatever the real application does. In addition to running the customer's application, uperf can provide you with additional features like
- Use threads instead of processes or vice versa
- Use CPU performance counters to measure certain operations
- Ability to change the protocol used and/or operation mix to predict performance metrics for a modified application
- and many other features (uperf.org has the whole list)
So please feel free to check out uperf and contribute code, ideas, suggestions etc..