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