3 February 2010
7.00pm
Profiling the Performance of IAML Test Cases
I was interested in improving the performance of my test cases, so I decided to write a few profiling methods so I can analyse what is taking the most time (the first fundamental rule of optimisation: know what to optimise). The preliminary results (executed only on a single large test case of 9 test methods) are interesting:

overall test times

13% of the time is spent inferring model elements;
54% of the time is spent executing code generation;
4% of the time is spent copying previously generated (cached) code generation files;
and 29% of the time is spent actually navigating the generated application.

However, these results are affected by the code generation cache. If I only consider the first test method (i.e. there is no way to reuse previously cached information), I get a more accurate representation of the necessary time for a single test case (which does very little web application navigation):

initial setup time

Here we can see the initial inference time and the initial code generation time - notice they are identical (in seconds) to the overall test time.

If we remove these constant costs, we can get a picture of the average cost per test case:

individual web actions

12% is spent loading from cache;
11% is spent waiting for AJAX calls to return; and
70% is spent navigating around the application otherwise.

More investigation is necessary to actually see which parts of my tests I need to focus optimisation on (by profiling the entire test suite, for example).
Read Thoughts (1) - Write a Thought
 
Write a Thought

1. MyAddiction MyAddiction : 5:07pm - Wednesday 3 February 2010 #
... graphjam is better. Good try though.
Reply »
 
Write a Thought

All page and entry contents are the property of their authors.
All other code, images and intellectual property is copyright © Jevon Wright. All rights reserved.