Można profilować statycznie, bez uruchamiania:
> Static profiling is used in a number of compiler optimizations or worst-case execution time (WCET) analyses. By analyzing program structure, a prediction is made as to which portions of the program will be most frequently visited during execution. Since this heavily depends upon branching behavior, some means of branch prediction is needed. This can range from simple and computationally cheap heuristics to expensive data flow based analyses such as constant propagation [23, 28, 4] or symbolic range propagation [31, 5, 25]