Exactly what do the Runtime Analysis acronyms CS PS PE CE mean?


Every once in awhile I get a big PS number and it is causing problems I think:

12/7/2019, 9:35:27 AM +394ms
+2ms ╔Received event [Mstr Bed Motion Sensor].motion = active with a delay of 117ms
+9635ms ║RunTime Analysis CS > 22ms > PS > 9541ms > PE > 71ms > CE
+9636ms ║Piston waited at a semaphore for 9515ms



In the ST version of webcore, when an event comes into a piston,
The piston starts. (CS) - Child start
The piston asks the parent for locking and data. (PS). (Parent Start)
Then the piston finishes initializing. (PE). Parent end and piston finishing initialization

Then it runs your piston code. (actual execution time)
The waited at semaphore is a case where you have multiple instances of the same piston wanting to run, and these had to be serialized (the waited time).

In the latest version of webcore on HE, this stuff does not happen. The architecture is setup to

  • not call the parent on each startup
  • to do serialization via event queuing vs. waiting for a lock

On ST all these parent child calls (at piston start and piston stop) are a lot of overhead, and at the 99th percentile do not happen on HE.