|
|
# Profiling
|
|
|
|
|
|
|
|
|
GHC includes at least two types of profiling: cost-centre profiling and ticky-ticky profiling. Ticky-ticky profiling is currently *not working* in the HEAD, but hopefully should be working again soon.
|
|
|
GHC includes at least two types of profiling: cost-centre profiling and ticky-ticky profiling.
|
|
|
|
|
|
|
|
|
Cost-centre profiling operates at something close to the source level, and ticky-ticky profiling operates at something much closer to the machine level. This means that the two types of profiling are useful for different tasks. Ticky-ticky profiling is mainly meant for compiler implementors, and cost-centre profiling for mortals. However, because cost-centre profiling operates at a high level, it can be difficult (if not impossible) to use it to profile optimized code. Personally, I (Kirsten) have had a lot of success using cost-centre profiling to find problems that were due to my own bad algorithms, but less success once I was fairly sure that I wasn't doing anything obviously stupid and was trying to figure out why my code didn't get optimized as well as it could have been.
|
... | ... | @@ -17,7 +17,7 @@ You can't use cost-centre profiling and ticky-ticky profiling at the same time; |
|
|
## Ticky-ticky profiling
|
|
|
|
|
|
|
|
|
The code for this isn't in the HEAD yet. Should be checked in soon.
|
|
|
Ticky-ticky should now be working in the HEAD, though not in any so-far-released version.
|
|
|
|
|
|
TODO update the GHC manual section on this.
|
|
|
|
... | ... | |