| 109 | |
| 110 | This setting will order symbols and functions by running time. This option isn't needed because the results we use are already sorted by self time. Turning this one while `Invert Call Tree` is selected will only make the results of your profiling run harder to understand. |
| 111 | |
| 112 | == Inspecting Functions == |
| 113 | The power of Instruments is that you can see what takes the most time in a specific function. In order to do this, just double click on the function name you want to inspect further. Initially, when a function is selected, you will only be presented with an assembly view. This view shows all the assembly functions that take place when the code is executed. There is also a percentage next to an assembly routine that corresponds to a line of code within the function selected. |
| 114 | |
| 115 | Since ISSM is not built with XCode, in order to view the corresponding source code relating to each assembly routine, we must locate the file we want to examine. To do this, select the "designate source" button to locate the file. This will look like a small red exclamation point. Select the file that contains the function you want to examine and then reload the view by going back to the original call tree and then clicking on the function again. The image below shows the steps to take to designate a source file for `MatrixMultiply()`, and the resulting view you should see. |
| 116 | |
| 117 | [[Image(http://i.imgur.com/ME8LzU8.jpg)]] |
| 118 | |
| 119 | By designating a source file for `MatrixMultiply()`, we can now see that the inner loop and corresponding matrix operations take the most time out of the entire function. This gives us an idea of what we need to start optimizing first. |