I have seen these three words showing up a lot, but don't understand the exact differences between them. For example, collecting CPU utilisation is often called profiling and can also fall into performance monitoring. What is the (subtle) difference between them?
This is the way I use these words. Others may have additional or different usages. Depending on the job at hand, I will use the terms differently. Development teams and operations teams have different needs an usage.
Monitoring is monitoring. Usually it is ongoing, and preferably automated. Open source tools like
Profiling is usually done on a particular program to see which code is using the most resources. Often this is CPU time, but can also include memory, I/O, and execution (wall) time. It is usually used to identify candidate code for optimization. Profiling tools tend to be language and/or platform dependent.
A different kind of profiling is done using logs and/or monitoring data. This is usage profiling and can be done for a variety of reasons. I haven't found many tools to do this.
I use tracing in a couple of different ways. Most frequently, I trace network routes. Depending on network and firewall settings a variety of tools may be used with more or less success. Most of these have traceroute in their name or description.
Program tracing is tracing the execution of a program. This is generally done in a test situation. This can be done in a number of ways (in my order of usage and experience):
In SAP WEB Application server we can define these three keywords as mentioned bellow-
Monitoring, tracing and profiling techniques offered by Web as well as those techniques provided by other SAP and external systems may be integrated using the proven CCMS architecture, which may greatly simplify the maintenance of large, distributed and heterogeneous installations.