From: Ion Gaztañaga (igaztanaga_at_[hidden])
Date: 2006-06-12 01:04:26
>> This means that I have to rework all main classes to achieve POSIX
>> persistence semantics in Windows even when a process crashes. This will
>> require using memory mapped files to emulate shared memory (with some
>> tricks to avoid performance problems with file-memory synchronization if
>> it's possible). I think that this approach will be much more portable
>> than the Shmem approach.
> Well that move makes worries me. The use I currently put
> shmem/interprocess to is for high-speed IPC communications. Could you
> explain what the potential performance impact is with this change.
This means that the OS will synchronize file and memory contents from
time to time, since shared memory will be implemented with memory mapped
files. However, I will create those files emulating shared memory with
the FILE_ATTRIBUTE_TEMPORARY attribute, that according to MSDN:
"A file is being used for temporary storage. File systems avoid writing
data back to mass storage if sufficient cache memory is available,
because an application deletes a temporary file after a handle is
closed. In that case, the system can entirely avoid writing the data.
Otherwise, the data is written after the handle is closed."
I think that with this attribute the overhead will be minimal. I've just
got write access to CVS so I will upload Interprocess so that you can
test if the performance is enough.