Xojo Profiler

am I going senile (don’t answer that!) or did Xojo at one point have a GUI to read profiler information?
All I get now is PROFILER.TXT which is difficult to wade thru

And correct me if I’m wrong here… at the end of each line is 3 numbers delimited by pipes


where A is # of times routine was called I assume
B is total time (microseconds???) it took … TOTAL or per execution??
C is % of what?

if B is total time, the average time would be (B/A)…right?

Dave yes it is still there. You just check mark “Profile Code”, run your code in IDE, but then click Window --> App.Debug -->Close (Dont press the stop button). Then in the IDE you will see at the bottom “Profiles” and you will see your stuff on the right side in the IDE.

Yeah, the third number is the average time.

You can view the profile data in the Navigator, just above Build Settings. The Profiles section only becomes visible after having run a project with Profile Code selected.

Thanks… that showed up the 3rd time I ran the program will profiler on… strange…

Confused however…

This tells me that statusbar.Paint was called 639 times for a total of 224ms
yet doesn’t it also say that statusbar.Paint in turn called Point_of 1,067 times for 6ms
and put_TEXT 5,540 times for 342ms? not to mention 69ms for XY_of

342+6+69=417ms … shouldn’t that be = to 224???

as in the total time for the Paint event is the sum total of all the actions it took

[quote=73542:@Dave S]am I going senile (don’t answer that!) or did Xojo at one point have a GUI to read profiler information?
All I get now is PROFILER.TXT which is difficult to wade thru
What kind of app ?

Ah no
224 is the amount of time that is NOT part of one of the methods called etc. Its the time that statusBar.Paint consumes all by itself & not something that is in a method called. If you collapse Main Thread winMain.statusBar.Paint you’ll see that all the methods called also get rolled into its time.

I found the GUI I thought I’d lost thanks to Gavin and Mike… now it a matter of undestanding why the #'s don’t add up as I expect

Read what I wrote :stuck_out_tongue:

Thanks… Believe it or not… your post stopped at “what kind of app” until I left the forum and returned…

so the Paint event (end to end) took 641ms… that I can work with… :smiley:

I think my post was messed up as I seemed to miss a closing bracket when quoting.

yeah the intent was that an expanded row splits out all the time it can definitely attribute to called methods & anything left over is it’s own overhead.

so as you expand rows you get each called method with its own time & then the excess on the enclosing row.

OH … and the TXT files we do have an FR to make it so you can drop one on the IDE & it will load it & show it in this style.
THe only thing thats a little weird is it would not be useful to be able to top one from app A on the IDE if you have project B open and there’s no signatures in the profile files to make it so you can’t do that at this point.

Where are you finding PROFILER.TXT? I see my profile data in the IDE, but no separate file…

This is a very nice feature.

Profiler.Txt is created from a COMPILED app…

Ah, thanks!

The IDE has never had great support for the data from a compiled app

When I run it from a nothing compiled app, I get this:

2014-05-02 01:12:20
Main Thread Window1.btnCode.Action|1|2.00|00.00%
Main Thread Window1.btnCode.Action->Stopwatch_MTC.Constructor|1|0|00.00%
Main Thread Window1.btnCode.Action->Stopwatch_MTC.Constructor->Stopwatch_MTC.Reset|1|0|00.00%
Main Thread Window1.btnCode.Action->Stopwatch_MTC.Constructor->Stopwatch_MTC.Start|1|0|00.00%
Main Thread Window1.btnCode.Action->Stopwatch_MTC.Constructor->Stopwatch_MTC.Stop|1|0|00.00%
Main Thread Window1.btnCode.Action->Stopwatch_MTC.Start|1|0|00.00%
Main Thread Window1.btnCode.Action->Stopwatch_MTC.Stop|1|0|00.00%
Main Thread Window1.btnCode.Action->Window1.AddToResult|1|1.00|00.00%

I understand everything except what the “6” under the date means.

line 1 - StartTime
line 2 -Total run time in seconds
line 3 thru n
threadName , method path, times called, time spent, percentage of total

for a single threaded app thread name isn’t much of an issue
but when you have several threads calls will be listed under the thread that invoked them

there’s no inherent ordering to the rows in the dump

there IS a feedback request to make it so you can juts load a profile into the IDE and analyze it as the profile examination works quite nicely there (it accumulates & splits times out based on what rows are expended or not)