调用图很重要。
关于一个程序,你需要知道的不是它花费时间的 哪里,而是 为什么。当它在一个函数中花费时间时,堆栈上的每一行代码都会在推理链中提供一个链接,说明它为什么存在。如果您只能看到堆栈的一部分,那么您只能看到部分原因,因此您无法确定是否确实需要这段时间。
调用图告诉你什么?每个弧都告诉您,某个函数 A 在某个时间段内调用某个函数 B。即使 A 只有一行这样的代码调用 B,这一行只给出了原因的一小部分。如果你足够幸运,也许这句台词有一个可怜的理由。通常,您需要查看多个同时发生的行,以找到一个不好的理由,如果它存在的话。如果 A 在不止一个地方调用 B,那么它告诉你的就更少了。