I need to grab large amounts (4-8Gb) of data in realtime – without dropping any data.
The old system could just about keep up with writing the data to a striped RAID array but the data has got bigger, faster than the disk have got faster (!) So I don’t have time to access the disk.
The new plan is to switch to Win64, install LOTS of ram, stuff the incoming data into a buffer and then write it all at the end.
So I’m looking for:
A windows API that limits new[] to physical memory and locks pages into physical ram, or I just disable the pagefile.
Or I use memory mapped files and force a sync at the end when I close the file. Is there a memory mapped file flag that prevents a write behind until I am ready?
What you’ll have to do is overload operator new and allocate and lock that memory yourself.