flow-storm / flow-storm-debugger

A debugger for Clojure and ClojureScript with some unique features.
The Unlicense
674 stars 29 forks source link

Profiling? #60

Open eoliphan opened 1 year ago

eoliphan commented 1 year ago

Would it be possible (or even desirable) to add some sort of optional profiling? Obviously this wouldn't replace or be as accurate as dedicated tools like criterium, etc. But it would be nice to be able to see rough numbers, such that I make a tweak and i can see that some call went from X to 1/2 X.

P.S. FlowStorm is awesome!

jpmonettas commented 1 year ago

hi @eoliphan! Thanks!

Sure, I have thought about it. Not sure it would make an accurate profiler but with very light instrumentation (just fn calls and returns) should be ok to measure how long fns take to execute I guess.

velios commented 8 months ago

@jpmonettas Was this idea realized? I actively use flowstorm, but I don’t know how to enable it, although it would be useful.

jpmonettas commented 8 months ago

@velios there insn't anything for measuring performance implemented yet, but measuring pretty accurate results shouldn't be hard if we create a special "performance mode".

With this I mean that in "perf measuring mode" we can setup ClojureStorm callbacks to just trace fn-call and fn-return (and disable the rest) with callbacks that just store the timestamps for functions calls and functions returns in a specialized structure. Then maybe create a Performance tool tab with various ways of looking at this.

velios commented 8 months ago

@jpmonettas This would be great, if of course you have time for it. Functionality of storm is breathtaking, but I'm sure it takes a lot of time to maintain. I'd like to contribute to project in the future, but project seem a pretty hard to understand, especially the part where the user interface interacts with the rest of the tool.

jpmonettas commented 8 months ago

@velios I'll eventually work on this, but if you are interested in the project internals and contributing there is https://flow-storm.github.io/flow-storm-debugger/user_guide.html#_internals_diagrams_and_documentation which links to dev_notes, and a bunch of diagrams.

Also don't hesitate to ask in #flow-storm channel on the Clojurians Slack or DM me if you have any questions.