Freja produces cache usage metrics and hints for optimizing the application. The responsibility for interpreting this information and using it to optimize the application lies with the programmer.
The sampling does in general not affect the sampled application in any other way than slowing it down, but the behavior of some applications, that rely on specific timing, may in some cases be affected by the sampling.
While any ELF binary can be sampled, mapping the analysis results back to the source code requires the availability of DWARF or STABS debug information.