Skip to content

Performance measurement basics

wvanbergen edited this page Sep 4, 2010 · 14 revisions

Before you can start with this tool, you should know the basics of performance measurement of web applications.

Performance metrics

A performance metric is a way to measure the performance of your application. The result, usually a number, can be used to describe the current performance of your application, or the performance improvement in comparison with a previous result.

Performance metrics are usually based on multiple requests (and especially when using request-log-analyzer). Taking only a single request into account is not very useful, because the duration of a request can vary greatly and it does not take the frequency into account.

For Rails applications, it makes sense to look at groups of requests that are handled by a certain action. Every request that is handled by the same action usually has a similar performance, because the same code is executed, similar queries are executed.

  • Requests per second is the amount of requests that can be handled within a second. The bigger this number is, the better. It is the most well-known performance metric for web applications, but it isn’t without criticism .
  • Average server time is the average time that the server needs to handle a request. This duration is what the visitor has to wait for and determines the user experience. The lower this number is, the better.
  • Cumulative server time is the sum of all the server time that was needed to handle all requests for a given group (action). This is what your server “feels”, or is similar to the load on your server. This measurement takes the relative popularity of an action into account. Again, the lower this number is, the better.
  • Client time is a metric that takes into account how long it takes to execute the action, but also other factors that impact the performance in the browser, like downloading images, executing javascript, latency, etc. This is an even better performance metric for user experience. As log files are generated on the server, this information is not available to request-log-analyzer and this metric cannot be used.

The reports of request-log-analyzer include average server time and cumulative server time, but also some other metrics like database time and rending time.

Improving the performance of your actions

Other performance analysis tools

Profiling

SQL query analysis