* Dag-Erling Sm?rgrav <des_at_des.no> [040708 15:24] wrote: > Giorgos Keramidas <keramida_at_freebsd.org> writes: > > What do you all think of this patch to top(1)? > > extremely inefficient; get_io_stats() is an expensive function and you > really don't want to call it approximately log(n) per process while > sorting, especially when it returns the same values every time. > > an ugly trick to get around this is to have get_process_info() store > io stats in ki_spare[] or some other unused kinfo_proc field, so you > never need to call get_io_stats() outside get_process_info(). I think you could generate an array indexed by the offset into the procs feild... If that's not clear I may be able to whip up a cache of that info tonight for you. (instead of spamming a feild in the array.) > you should also do secondary sort orders like the existing compare_*() > functions do, since qsort() is unstable, so processes with identical > stats will jump around if they aren't also sorted by name or some > other secondary criterion. You can use mergesort, but I may be missing the point. -- - Alfred Perlstein - Research Engineering Development Inc. - email: bright_at_mu.org cell: 408-480-4684Received on Thu Jul 08 2004 - 20:50:15 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:00 UTC