If it is with serialization, I think I found it. The
CArchive::CArchive actually has two optional parameters the first of which is "int nBufSize = 4096" and explained as "An integer that specifies the size of the internal file buffer, in bytes. Note that the default buffer size is 4,096 bytes. If you routinely archive large objects, you will improve performance if you use a larger buffer size that is a multiple of the file buffer size." Several times a minute certainly qualifies as "routinely" and 50MB qualifies as large in comparison to 4kB. No idea if this is actually related to the problem branko-r has, but rather obviously CArchive expects you to set this buffer to larger size when doing things like auto-saving very large lists and will get better performance for it.
Could somebody go through the code and see that CArchives used to serialize structures that could potentially be very large have larger than default buffers? Even if it has no impact on the issues in this thread, having them at default will have impact on performance at start and close.