[ANN] profiteur: a tool to visualise GHC .prof files

Hey all, I just released the tool profiteur [1]. You can use it to visualise GHC `.prof` files in a tree map -- I think this makes looking at huge `.prof` files a lot less unwieldy. More information can be found in this blogpost [2]. [1]: http://hackage.haskell.org/package/profiteur [2]: http://jaspervdj.be/posts/2014-02-25-profiteur-ghc-prof-visualiser.html Peace, Jasper

On 25/02/14 18:00, Jasper Van der Jeugt wrote:
Hey all,
I just released the tool profiteur [1]. You can use it to visualise GHC `.prof` files in a tree map -- I think this makes looking at huge `.prof` files a lot less unwieldy. More information can be found in this blogpost [2].
[1]: http://hackage.haskell.org/package/profiteur [2]: http://jaspervdj.be/posts/2014-02-25-profiteur-ghc-prof-visualiser.html
Peace, Jasper _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Hi, Great! The way profiling output analysis is now is a huge pain in the ass. I'm very glad to see that something new is up. I did want to try it but I can't get it to run: on ghc-20140225, aeson fails to compile so that doesn't work. I did manage to compile it with 7.6.3 but after trying to run it on a profiling output I had lying around, it failed with: /home/shana/programming/yi/yi/yi.prof: Failed reading: takeWith You can find the file in question at [1] (~1.4MB). I'm most eager to try this out so it'd be great if you could have a look. Are there plans to support on-line rendering? I find it very useful to be able to see the profiling output as the program is running. Previously I ended up having to periodically (~5 sec) generate the postscript file and then have the postscript viewer watch it for changes. It was very cumbersome but it sometimes worked. It'd be great if your software could do something like this! Are flags other than -p supported? I know that it's possible to get different profiling output, such as on size of allocated structures &c. [1]: http://fuuzetsu.co.uk/misc/yi.prof -- Mateusz K.

I uploaded a new version (0.1.1.0) which works with the `yi.prof` file you provided. Hope this helps, Peace, Jasper
Hi,
Great! The way profiling output analysis is now is a huge pain in the ass. I'm very glad to see that something new is up.
I did want to try it but I can't get it to run: on ghc-20140225, aeson fails to compile so that doesn't work. I did manage to compile it with 7.6.3 but after trying to run it on a profiling output I had lying around, it failed with:
/home/shana/programming/yi/yi/yi.prof: Failed reading: takeWith
You can find the file in question at [1] (~1.4MB). I'm most eager to try this out so it'd be great if you could have a look.
Are there plans to support on-line rendering? I find it very useful to be able to see the profiling output as the program is running. Previously I ended up having to periodically (~5 sec) generate the postscript file and then have the postscript viewer watch it for changes. It was very cumbersome but it sometimes worked. It'd be great if your software could do something like this!
Are flags other than -p supported? I know that it's possible to get different profiling output, such as on size of allocated structures &c.
[1]: http://fuuzetsu.co.uk/misc/yi.prof
-- Mateusz K.

On 25/02/14 19:01, Jasper Van der Jeugt wrote:
I uploaded a new version (0.1.1.0) which works with the `yi.prof` file you provided.
Hope this helps, Peace, Jasper
Hi,
Great! The way profiling output analysis is now is a huge pain in the ass. I'm very glad to see that something new is up.
I did want to try it but I can't get it to run: on ghc-20140225, aeson fails to compile so that doesn't work. I did manage to compile it with 7.6.3 but after trying to run it on a profiling output I had lying around, it failed with:
/home/shana/programming/yi/yi/yi.prof: Failed reading: takeWith
You can find the file in question at [1] (~1.4MB). I'm most eager to try this out so it'd be great if you could have a look.
Are there plans to support on-line rendering? I find it very useful to be able to see the profiling output as the program is running. Previously I ended up having to periodically (~5 sec) generate the postscript file and then have the postscript viewer watch it for changes. It was very cumbersome but it sometimes worked. It'd be great if your software could do something like this!
Are flags other than -p supported? I know that it's possible to get different profiling output, such as on size of allocated structures &c.
[1]: http://fuuzetsu.co.uk/misc/yi.prof
-- Mateusz K.
That indeed lets me load up the file. Now I notice a problem with the rendering itself. When I open the generated file, the rendering on of the whole thing keeps twitching: what's happening is that your model realises there's some space still left so it tries to resize to maximum space available _but_ it resizes too much and scrollbars appear (making the whole thing ‘jump’ slightly). It then notices that it in fact doesn't fit inside the window and goes a bit smaller. Scrollbars disappear (so it jumps again) but then it notices that there's some space left and so on and so on… It's the same behaviour in Firefox and Chromium and resizing my browser window doesn't seem to affect it, it keeps toggling between slightly-too-small and slightly-too-big. -- Mateusz K.

I can confirm this "twitching" behavior. I ran profiteur on a ~4.1M
profile, and the tree browser works fine, except for the constant
resizing.
Great work, I've been looking for this kind of tool for a while.
On Tue, Feb 25, 2014 at 2:08 PM, Mateusz Kowalczyk
On 25/02/14 19:01, Jasper Van der Jeugt wrote:
I uploaded a new version (0.1.1.0) which works with the `yi.prof` file you provided.
Hope this helps, Peace, Jasper
Hi,
Great! The way profiling output analysis is now is a huge pain in the ass. I'm very glad to see that something new is up.
I did want to try it but I can't get it to run: on ghc-20140225, aeson fails to compile so that doesn't work. I did manage to compile it with 7.6.3 but after trying to run it on a profiling output I had lying around, it failed with:
/home/shana/programming/yi/yi/yi.prof: Failed reading: takeWith
You can find the file in question at [1] (~1.4MB). I'm most eager to try this out so it'd be great if you could have a look.
Are there plans to support on-line rendering? I find it very useful to be able to see the profiling output as the program is running. Previously I ended up having to periodically (~5 sec) generate the postscript file and then have the postscript viewer watch it for changes. It was very cumbersome but it sometimes worked. It'd be great if your software could do something like this!
Are flags other than -p supported? I know that it's possible to get different profiling output, such as on size of allocated structures &c.
[1]: http://fuuzetsu.co.uk/misc/yi.prof
-- Mateusz K.
That indeed lets me load up the file. Now I notice a problem with the rendering itself. When I open the generated file, the rendering on of the whole thing keeps twitching: what's happening is that your model realises there's some space still left so it tries to resize to maximum space available _but_ it resizes too much and scrollbars appear (making the whole thing 'jump' slightly). It then notices that it in fact doesn't fit inside the window and goes a bit smaller. Scrollbars disappear (so it jumps again) but then it notices that there's some space left and so on and so on... It's the same behaviour in Firefox and Chromium and resizing my browser window doesn't seem to affect it, it keeps toggling between slightly-too-small and slightly-too-big.
-- Mateusz K. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

The twitching should be fixed in version 0.1.2.0. Thanks for the comments!
Peace,
Jasper
On Tue, Feb 25, 2014 at 8:14 PM, sykora
I can confirm this "twitching" behavior. I ran profiteur on a ~4.1M profile, and the tree browser works fine, except for the constant resizing.
Great work, I've been looking for this kind of tool for a while.
On Tue, Feb 25, 2014 at 2:08 PM, Mateusz Kowalczyk
wrote: On 25/02/14 19:01, Jasper Van der Jeugt wrote:
I uploaded a new version (0.1.1.0) which works with the `yi.prof` file you provided.
Hope this helps, Peace, Jasper
Hi,
Great! The way profiling output analysis is now is a huge pain in the ass. I'm very glad to see that something new is up.
I did want to try it but I can't get it to run: on ghc-20140225, aeson fails to compile so that doesn't work. I did manage to compile it with 7.6.3 but after trying to run it on a profiling output I had lying around, it failed with:
/home/shana/programming/yi/yi/yi.prof: Failed reading: takeWith
You can find the file in question at [1] (~1.4MB). I'm most eager to try this out so it'd be great if you could have a look.
Are there plans to support on-line rendering? I find it very useful to be able to see the profiling output as the program is running. Previously I ended up having to periodically (~5 sec) generate the postscript file and then have the postscript viewer watch it for changes. It was very cumbersome but it sometimes worked. It'd be great if your software could do something like this!
Are flags other than -p supported? I know that it's possible to get different profiling output, such as on size of allocated structures &c.
[1]: http://fuuzetsu.co.uk/misc/yi.prof
-- Mateusz K.
That indeed lets me load up the file. Now I notice a problem with the rendering itself. When I open the generated file, the rendering on of the whole thing keeps twitching: what's happening is that your model realises there's some space still left so it tries to resize to maximum space available _but_ it resizes too much and scrollbars appear (making the whole thing 'jump' slightly). It then notices that it in fact doesn't fit inside the window and goes a bit smaller. Scrollbars disappear (so it jumps again) but then it notices that there's some space left and so on and so on... It's the same behaviour in Firefox and Chromium and resizing my browser window doesn't seem to affect it, it keeps toggling between slightly-too-small and slightly-too-big.
-- Mateusz K. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

On 25/02/14 19:20, Jasper Van der Jeugt wrote:
The twitching should be fixed in version 0.1.2.0. Thanks for the comments!
Peace, Jasper
It indeed does seem fixed. My last pet-peeve for now seems to be that it's possible to get the same colour of rectangles aligned with each other which makes it impossible to tell how big the rectangles actually are. Perhaps some kind of algorithm to pack contrasting colours next to each other would be in order. It's just a suggestion. Again, thanks a ton for this software! -- Mateusz K.

Mateusz Kowalczyk
It indeed does seem fixed. My last pet-peeve for now seems to be that it's possible to get the same colour of rectangles aligned with each other which makes it impossible to tell how big the rectangles actually are. Perhaps some kind of algorithm to pack contrasting colours next to each other would be in order.
It's just a suggestion.
Again, thanks a ton for this software!
Or maybe put a 1px border around the rectangles? KISS and all that ;) Cheers, Chris
participants (4)
-
Chris Warburton
-
Jasper Van der Jeugt
-
Mateusz Kowalczyk
-
sykora