I have created a multi-platform application using FLTK which using the boost text serialisation functionality to achieve portable cross-platform document saving like functionality. (If this is a bad idea: too late I'm afraid!).
This has worked fine on Mac and on the Windows machine I compiled it on. I however used the compiled binary on a lower specced Windows machine, and, whilst it ran fine with all the other functionality, when opening the save files (ie when deserializing) the program would crash.
Looking at the memory usage in task manager on the lower specced Windows machine and in the Activity monitor I noticed this different behaviour
Windows: memory usage is the problem, it keeps climbing until the program uses around 800Mb of RAM and then the program crashes
Mac: memory use for the same compiled code when deserializing the exact same file tops out at 40Mb.
The windows binary is Win32 (32bit) and I have verified the same normal working behaviour in both 64bit and 32bit Mac versions. All the code was linked using static libraries (except where it isn't possible, for instance for the CRT in Mac OS).
Why would using the exact same code using boost functionality that is self contained in a header only file lead to this wayward memory usage on the Windows machine (it worked fine on a higher specced machine although I did not track the memory use) whilst all the other programs functionality work fine?
And what can I do about it?
Thanks.