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.
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).
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.