Performance Profiler - A first attempt

Page 3/9
1 | 2 | | 4 | 5 | 6 | 7 | 8

By Grauw

Ascended (10821)

Grauw's picture

11-09-2019, 22:34

I started with that timeline view yesterday, it makes it really easy to see what is executing when and for how long. For example with the VDP commands entry on the timeline, it will be much easier for me to parallelise the CPU-VDP workload by just looking when the commands could best be executed. Where previously I had to mostly rely on a mental picture, guesses and rough measurements.

p.s. Also there was a little problem in the VDP command probe, but wouterv quickly fixed it today, so make sure to be updated to openMSX commit ae590392c9 if you want to use it.

By spacemoai1973

Ambassador (0)

spacemoai1973's picture

18-02-2020, 01:04

Is the timeline chart in the latest version yet? It looks quite useful!

By Grauw

Ascended (10821)

Grauw's picture

25-02-2020, 02:25

Not yet! I made that new mode but then never took the time to properly finalise it Nishi.

Back on my radar now.

By salutte

Master (165)

salutte's picture

26-02-2020, 15:43

I was in need of some profiling tools, and I just saw this thread. Awesome, thanks Grauw!

By salutte

Master (165)

salutte's picture

26-02-2020, 16:46

Question about tcl.

I'm running the

profile::section_scope_bp frame 0xFD9F  # H.TIMI
profile_osd t

I'm getting a continuous "warning: Too many arguments.", but I have no idea to debug where this warning comes from.

I can use:

profile

without problems and I'm getting the text output.

By wouter_

Hero (535)

wouter_'s picture

26-02-2020, 17:05

The problem is caused by the '# H.TIMI' comment, it's seen as 2 extra arguments for the 'profile::section_scope_bp' command. You can fix it by replacing '# H.TIMI' with ';# H.TIMI'.

'#' in Tcl acts different like in most other languages. Tcl has no special parsing rule for '#'. Instead it's as-if there is a proc with the name '#' that takes a variable number of arguments and that acts like a nop. So if you want to add a comment on the same line as another command, you first have to end that first command via ';'.

I know it's annoying, but that's how Tcl works Sad

By salutte

Master (165)

salutte's picture

26-02-2020, 19:50

THanks wouter_... but it still happens without the # H.TIMI :S

By Manuel

Ascended (19678)

Manuel's picture

26-02-2020, 20:48

Are you sure?

What does set $errorInfo output?

By salutte

Master (165)

salutte's picture

26-02-2020, 21:20

This seems to point to the right place:

> set $errorInfo
can't read "too many arguments.
while executing
"debug set_watchpoint read_mem -once [reg sp] {} {debug set_condition -once {} {::namespace inscope :Tonguerofile {section_end {frame}}}}"": no such variable

By Grauw

Ascended (10821)

Grauw's picture

26-02-2020, 22:04

Hey salutte, are you using a recent development build of openMSX? The section_scope_bp command relies on “run-once” breakpoints (-once) which was only introduced after the current openMSX 0.15.0 release. The same applies to section_irq_bp. The commands section_begin_bp and section_end_bp do work on openMSX 0.15.0.

Page 3/9
1 | 2 | | 4 | 5 | 6 | 7 | 8