By "Shared memory" you mean System V shared memory, right?
I think Linux mmap's a hidden tmpfs when you use this, so it's effectively the same as mmaping a tmpfs.
Doing file I/O on tmpfs is going to have a penalty... mostly (there are special cases where it might make sense, such as >4G in a 32-bit process)