"Profiling" .fvwmrc

I have a .fvwmrc which needs quite a while to start up. This is a bit annoying. I’d like to streamline it, but I’m not sure which parts of it are taking so long. Has anyone out there an idea how I could find the slow portions, short of taking portions out bit by bit and timing the startup?

The PipeRead parts, I think.
Disk/File I(O) is still slower than parsing all commands.

Also the heavy “functions” like thumbnail e.d. with a lot of extra commands used in their loop. Try removing them and see if it is any better. Your file also generally shouldn’t be higher than 40 KB.

Having just been messing around with the Shape extension, I can report that large pixmap masks also take their toll.

You could try inserting a few lines of the form

FuncTimeStamp '###' $(date)"
Or add a function

[code]DestroyFunc FuncTimeStamp
AddToFunc FuncTimeStamp

  • I PipeRead “echo Echo $0 ‘###’ $(date)”
    And then you can write

[code]FuncTimeStamp “FvwmButtons: Config BEGIN”

… do the config …

FuncTimeStamp “FvwmButtons: Config END”
And get a fairly precise idea of where the time goes. Admittedly the overhead of the echo may distort things slightly, but on a quick test here it seems too small to measure.

once you have the general section of the config narrowed down, you can add in more timestamps until you have the culprits pinned down.