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
|A|B|C%
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.
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
[/quote]
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 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.
When I run it from a nothing compiled app, I get this:
2014-05-02 01:12:20
6
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)