The _tickCallback frame you see in the graph was called by the main root service you profiled. By clicking on that frame you will reveal the full name and file that defines this frame's process. It looks like this is the
Node.js Event Loop that is used to actually run your application.
It is not clear from the cropped picture what metric this profile is showing (e.g CPU, Heap, etc) so I cannot recommended any optimizations, but you read it top down. The main root service is always 100% (since you are profiling that specific service's metric breakdown). The next layer shows all of the processes your root service called, and the size of each frame shows how much of the 100% root resources that process used. The next layer down shows all of the processes called by each process in the layer above, with their length representing the % used to make up the previous layer's %; and so on until you reach the last processes called.
These types of flame graphs are best used for understanding what process stack is taking up the most resources in your service. You can also use this information to optimize your service to reduce CPU/Memory usage, contention issues, processing execution time, and threading issues. Errors such a OOMs (Out of Memory) will also reveal themselves in the process that is consuming all of your services memory.
It is recommended to profile your service multiple times in order to see a more accurate averaged profile (I see you ran it 19 times on this service which is good). For more details into how to use these profiles I recommend taking a look at our
Profiler Interface and
Profiling Concepts guides.
- Note: Google Groups is for general product discussions. For further technical support in optimizing your code it is recommended to post your
full detailed questions to
Stack Exchange using the supported Cloud tags.