Speed Improvements in 8.2.0

tiron017 wrote on Monday, March 09, 2015:

Some of the documentation for the new 8.2.0 release describes binary semaphores as being “up to” 35% faster than older versions and the new task notifications as being “up to” 45% faster. I am trying to decide if it is worth the work to upgrade to the new version, but I cannot find anything quantifiable about these claims.

Does anyone know exactly what changes were made to gain these speed improvements? How would I know if my use case would benefit from them? Any information would be appreciated.


rtel wrote on Monday, March 09, 2015:

In both cases the improvements come from making the code less generic. Or, to put it another way, more specific to a particular use case. That was done on the general recognition that code size is becoming less important overall.

I actually took the measurements you refer to myself - and did so by counting the number of instruction cycles used to give a semaphore or task notification from an interrupt (I didn’t count them by hand, I let the simulator do that for me ;o)

Task notifications are must faster because there is much less to do. There is much less to do because their use case is quite different from that of a binary semaphore. Particularly, the notification goes directly to a task, so there is no need to check if there are other tasks waiting for the notification as there would be if a semaphore was used (any number of tasks can pend on the same semaphore).