How to interpret the performance monitor

1 - What’s the difference between the gray bar and the green part of the bar?

The green bar is the amount of time that particular perf monitor line is actually taking, and where within the frame its doing its work. The grey bar is time where that op is waiting for something else to get done. You will notice that beneath each line that contains a bar with some grey in it, there will be other lines whos green bars match up to the grey bars in the lines above them. This feature is helpful for you to know why a certain node is cooking. If you see a node cooking and you don’t know why, look up to see if its green bar is within the timeframe of something else’s gray bar. If it is, it means it’s cooking due to some dependency between that node and this one.

2 - I see a lot of ForceCook Orphan - with changes being propagated, etc. - what does that mean?

These you can ignore, they are there more for our debugging purposes, you can’t do anything about these lines in particular. Other force Cook lines can be caused by many things. For example a force cook - DAT_Text entry is caused by a Text DAT that is monitoring panel or chop values to know when to execute scripts. They need to cook every frame so they can execute when needed. Similarly other nodes like TouchOut and AudioOut nodes will also cook every frame through a force cook mechanism. In general you can ignore the Force Cook lines as a necessary cost.

3 - A lot of stuff that shouldn’t cook seems to be cooking. Is there a way to put triggers or such to only make things cook when inputs change vlaues?

You can use the Selective cooking option in the Null CHOP to do this. However, remember that cooking starts from the end of the chain, not the start. It’s easier to avoid cooking by making sure nobody is using a node (through Switch OPs to avoid cooking unneeded networks for example), than to use stuff like Selective cooking to avoid cooks.

In general its best to try to avoid long cooks before trying to reduce the number of cooks. First use the Sort option and set it to "Adjusted Time’ on the performance monitor to find the most expensive OPs in your network, and try to speed them up.