Quote
Tuesday: Some bad news - the new allocators do not fix the problem. Some good news - I have a ton of info now and have a direction. The testers were running multiplayer today and got a bunch of crashes. The allocators are dumping out lots of information and it is pretty easy to reproduce the crash, so at least now I can see what is going on. After 3 hours of playing, the largest virtual address free block went from 219MB to 9MB. Some piece of code wanted a 16MB chunk and BAM it was all over. The good thing is i've got logs during the entire 3 hour session so I can go through them and see exactly what was going on. From examination of the last trace, it looks like used virtual space is at 1600MB (on XP 32bit), so there is 400MB of unusable fragmented address space. I've got some ideas on how to proceed: I'm going to create 2 new allocators to seperate the allocation patterns into slow and fast allocations. Things that get allocated once and stay around forever will be pulled out into their own allocator. Things that come/go quickly will be in their own as well. It is going to take probably a day to get these new allocators in and being used in the right places. I wish I could continue tonight, but I was up all last night and I'm fading fast.