One of the biggest problems with conventional tuning is that non-technical people (and even a lot of technical ones as well) can't understand it. Although we invented Method R in an Oracle context, it's easy to explain our method in everyday terms.

Imagine that your performance problem is this: every time you send your son on a shopping errand, it takes him an hour, and it's really bothering you that it takes him this long. How can you optimize the process?

Profile in pie chart formYou've already executed step 1 of Method R by identifying the task that's important to you: shopping for groceries. Step 2 says to measure that hour in detail. The best way to do that is by creating a profile, which is a spanning, non-overlapping account of your time. Think of a pie chart that explains where all your time has gone.

The pie chart is a good guide, but you can do more with the numbers behind the chart. Imagine that your profile details look like this:

Subtask Duration Executions
minutes %
Total 60 100%
Talk with friends 37 62% 3
Choose item 10 17% 5
Walk to/from store 8 13% 2
Pay cashier 5 8% 1

Now you can see exactly where your time has gone, and exactly how much time you can save. From this profile, it's easy to begin imagining solutions, which is step 3. For example, you could reduce the shopping time by 62% (from 60 to 23 minutes) if your boy didn't stop to chat. The profile also tells you what not to do: buying that car he wants is going to save only some fraction of 8 minutes; a car is certainly not where your performance leverage is here.

Step 4 says to stop your analysis when the cost of further optimization exceeds the benefit. It pays to be clever: the smartest optimizations are the ones that produce tremendous benefit at low cost.

We use the same general procedure to optimize computer software performance. The real tricks are learning how to create the profile, and then learning how to attack the problems that your profile reveals. That's where our company's software, education, and consulting services enter the picture.


# bunditt 2008-08-26 19:49
In case of high executions on subtask, talk with friend, e.g. 100, do you have to consider it on method-r ?
Reply | Reply with quote | Quote | Report to administrator
# Karen Morton 2008-08-27 04:08
bunditt - The point of Method R is that it focuses on the response time for a given business task, in this case, sending the son on a shopping errand to the store. When we look at how the son spent his time to complete this task, the main factor in the profile is that "talk with friends" is the number one consumer of response time. The number of executions of that event may or may not be pertinent to the solution for how to fix the problem. But whether it was 1 execution or 100s, that event was responsible for the majority of response time so it's on that event that you want to focus your attention.
Reply | Reply with quote | Quote | Report to administrator
# Bono 2009-09-16 01:16
Not sure this is always the right approach. For example, lets imagine the son has to pick 50 items
Talk 3 times 37 minutes
Choose item 50 times 45 minutes
Walk 2 times 8 minutes
Pay 1 time 5 minutes
Working on "choose item" is maybe not the right thing to do...
Reply | Reply with quote | Quote | Report to administrator
# Cary Millsap 2009-09-16 14:04

The key to not getting tripped up by an example like the one you propose is that you need to create the full set of candidate solutions before you evaluate which solution(s) you want to implement, and in what order. Please take a look at for more details.

Reply | Reply with quote | Quote | Report to administrator