1. Execute -> Delete... -> compile and run -> Execute -> Profile Analysis
2. 选择Call graph标签页(Flat output 有时为空,有时有内容?)。
3. 观察到,每个entry包含若干lines。在每个entry内,找到Index项不为空的那一行。在此entry内,此行之上,为所有调用此function的其它函数;此行之下,为所有此function调用的其他函数。
3.1. 此处的“调用”关系,仅包含一级。如,main CALL a CALL b, 则b不在main的entry内显示。除非此后有main直接CALL b的语句。
3.2. 这个特定的行对应的函数被称作 current function,姑且称作当前函数。这一特定行可称作当前行。
3.3. 即,每一项 与 当前函数 一一对应。
4. 针对当前函数,在当前行内可以得到的某些有用信息:
4.1. 用%time项,或self + children,可以得到从当前函数开始的整条函数调用链的耗时(或其占比)。
4.2. 比较self和children,若self明显大,则time consumption的主要contributor是当前函数的自己的函数体。