shared vs. const memory very simple question regarding performance

Hey all!
I want to ask about the situation where using constant memory(of course I know it’s read only memory) is preferred over the shared memory (other than the memory size, actually I am asking about the situations where both of them can be used )? and why.

Constant memory has a single read port, so it is the right memory to use if all the threads are reading the same address.
It is also persistent across multiple kernel invocations.