On Wed, 20 Aug 1997, Jeremy Elson wrote: >Small buffers should probably remain as they are (static buffers >associated with the descriptor) because it'd just be a waste of >resources to constantly be allocating them and deallocating them -- >the only memory savings would be for idle players. I agree with that point. >Large buffers, on the other hand, should probably be part of the new >buffer system. No persistent buffers are needed (assuming I'm >understanding your concept of "persistent" from reading the buffer Persistant means it will never time out, basically. Although an explicit free_buffer() call will get rid of it with a little complaining. >patch.) Large buffers are used frequently enough that some of them >will never time out, so the system will automatically settle on some >number that are essentially "persistent". And with tweakable timeout for those who want more control. >This brings us to an interesting point: When a buffer is requested, >the request should be fulfilled by the (large enough) buffer most >recently used. Otherwise, successive buffer requests will cycle In a nutshell, if we just freed an 8192 byte buffer and someone requests less than that, we give that to them? We might run into more of a problem with running out of appropriate sized buffers that way. do_users and do_who absolutely _eat_ buffers for lunch and they are frequently used. >through all available buffers and none will ever time out. Letting >unused buffers age can be easily assured by prepending freed buffers >to the free list and then taking the first one that appears in the >list when one is requested. Currently I keep them sorted ascending to find the first free one that fits. If no one uses a 512 byte buffer in awhile, it'll be freed and 1024 byte buffers will be used (assuming it's not persistant). I do think I could get by with less persistant buffers though... -- greerga@muohio.edu me@null.net | Genius may have its limitations, but stupidity http://www.muohio.edu/~greerga | is not thus handicapped. -- Elbert Hubbard +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/08/00 PST