The collectoin of RunTime information for later use at CompileTime.
The profiling information is generally saved to disk, either as a summary (requires more RAM) or as a log (requires more disk) and then used to identify parts of the code which would most benefit from Optimisations of various types. HotSpotCompilers do this all AutoMagically at runtime.
3 pages link to Profiling: