D
Bisher finde ichs sehr gut. An Alternativen hab ich aber auch nur den CodeAnalyst (und den auch nur sehr kurz) ausprobiert. Für die Sachen, die ich mache, hat bisher immer dicke gereicht, was very sleepy kann.
Das Original-Sleepy sagt:
"Every 1ms or so, the profiler thread suspends the target thread, and pulls out the current instruction pointer register value from the thread context. These mem addresses are resolved into procedure names and line numbers using debug information. This allows line-level resolution, without making any changes to the target program. The only requirement is that the target program is compiled with (MS) debug information "
Very Sleepy hat vermutlich an der eigentlichen Methode nichts geändert:
"The original version is a bit lacking in many areas, so I’ve been doing some work on it.
My version (“Very Sleepy”) has a boatload of improvements in, such as call-graph profiling, an improved UI, load-save, GCC support, and 64-bit support."
Um vernünftige Ergebnisse zu bekommen, bau ich meist schnell ein Testprogramm mit ner Schleife um das zu testende drumherum, damit es 10 Sekunden oder länger laufen kann, und dann sind auch die Ergebnisse zuverlässig. Manchmal muss man halt ein wenig rumprobieren, um nicht zu sehr auf CPU-Cache-Effekte reinzufallen, geht aber normalerweise.