On Wed, Aug 22, 2001 at 01:24:20PM -0500, Alfred Perlstein wrote:
> * Anton Berezin <[EMAIL PROTECTED]> [010822 12:47] wrote:
> > On Wed, Aug 22, 2001 at 12:39:26PM -0500, Alfred Perlstein wrote:

> > > getrusage(2)

> > That's not quite it - it does not provide the statistics of what
> > number of pages is currently on PQ_ACTIVE/PQ_INACTIVE queues, and I
> > think I need that number.

> Why do you need this?

I am trying to measure the quality of different malloc(3)
implementations with regard to the active set size.  I need the
PQ_ACTIVE number on a theory that, given a light system load and a lots
of RAM, a run of a process with a good malloc implementation will have
less active pages than the identical run of the same process with a bad
malloc implementation.  Consequently, such `good' (by this criterion)
malloc(3) will be also good, or even better, in case of a heavy system
load.

I know that phkmalloc is supposed to be good in this regard, but I am
trying to see whether there are better ones, especially for specific
programs that are known to be rather harsh memory users (perl).

> > I was thinking of copying pmap_pid_dump() from sys/i386/i386/pmap.c
> > and counting the pages belonging to different queues.  Is this a
> > feasible approach?

> It may be, I'm not sure how the structures are orginized, it may be an
> expensive operation to calculate this, but I'm not sure.

I am sure it is not an expensive operation to *calculate*, since
pmap_pid_dump() deals with vm_page_t structures which have a queue field
- just what I need.  What I worry about is that the actual *traversal*
might be expensive.  Worse, pmap_pid_dump() is undocumented, and I don't
understand what for(i=0;i<1024;i++) for(j=0;j<1024;j++) {} loop there is
supposed to do...   :-(

I'd appreciate if someone would explain this to me.

=Anton.
-- 
May the tuna salad be with you.

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to