Thread: Memory issue
View Single Post
  #7  
Old 09-11-2006, 02:02 AM
fathernitwit
Developer
 
Join Date: Jul 2004
Posts: 773
Default

Quote:
Originally Posted by Angelox
but I never see the 650mb issue again
For what its worth, I suspect that this is just windows lying to you. My guess is that the first zone got the shared memory accounted for in its displayed size, but the other zones did not, because they didnt "create" it. When you killed it, the shared mem would have seemed to disappear, but the memory was still allocated, and windows just didnt know who to "blame" it on, so it didnt display it.

Quote:
Originally Posted by eq4me
Well, enough of my ramblings. Maybe someone with more knowledge about the inner workings of EQEmu can comment on this.
Not to derail the thread, but I dont want to leave this unanswered.

Anywhere we can, we use a map, and where we cannot (shared memory), we already use a double pointer system. There is no reasonable way to run a map against shared memory however. Further, a map is still a O(log n) data structure, and with the number of items we have, log(n) is on the order of 15-16... and thats wayyyy too many operations (not even considering the constant factor) for the frequency at which we do item lookups.

The other things which are stored in shared memory, and hence have similar space constraints, are going to have a similar story behind them. They are there for one of two reasons: runtime effeciency or space effeciency. Items happens to be both. We hate shared memory, and try to get rid of it whenever possible, but not using it would be worse.
Reply With Quote