Raging Menace
  MenuMeters Questions and Answers (FAQ)

Questions you've asked (and questions I hope you ask):

Q:  This is a hack! Its using undocumented Apple APIs! Aren't you behaving badly?

A:   Guilty as charged. Its important to note, however, that the only undocumented API used in MenuMeters is the menu extra API itself. The routines used to gather the resource information (host_statistics, sysctl, and IOKit) are all documented.

As for the menu extra API itself... I think the benefits outweigh the risk. Certainly it is possible for a misbehaving menu extra to crash the SystemUIServer. Since SystemUIServer restarts itself, a crash is not the end of the world. Hopefully in some future system release Apple will introduce an public API that is comparable to the menu extra API. I'll happily port to that API when that day comes. In the meantime I wrote what I wanted. That said, if you are the kind of person who avoids all software that goes outside the Apple guidelines, then MenuMeters is not for you. Numerous alternatives exist, and a search on any Macintosh software site should be your next step.

Q:  How can I uninstall MenuMeters?

A:   If you want to remove MenuMeters from your system you can use the MenuMeters installer's "Uninstall" button to automatically remove the software. Alternately you can delete the "MenuMeters.prefPane" file manually. Once uninstalled you must logout and relogin to complete the removal of MenuMeters from your system.

Q:  How do I tell how much CPU time MenuMeters itself is using? How can I decrease its CPU usage?

A:   The MenuMeters are plugins to SystemUIServer, and hence their CPU usage is counted into SystemUIServer's total CPU usage. To check MenuMeters CPU time use the terminal 'top' program or the Activity Monitor application to check SystemUIServer's CPU usage. I recommend using 'top -s 60' to get a wider (and thus more accurate) sample. Note that all SystemUIServer plugins are counted in this total (clock, iChat, etc. etc.) so not just MenuMeters is responsible. To get an accurate read on MenuMeters alone turn off all the MenuMeters and check SystemUIServer's usage then turn on the MenuMeters you use and check SystemUIServer again.

By its nature MenuMeters must poll the system periodically to gather data. This process uses a small amount of CPU time, and the actual process of drawing the graphics uses a little more. I expect that on current machines MenuMeters will add 1-2% additional CPU usage to SystemUIServer on average.

Here are some things you can do to reduce the CPU usage of MenuMeters:

Q:  I have 4 (or 8, 16, etc.) CPU cores, why does MenuMeters show information for more CPUs?

A:   Most recent Intel CPUs support "Hyperthreading" which divides each physical CPU core into multiple virtual cores. If your computer features Hyperthreading then OS X will utilize each virtual core separately and consequently MenuMeters will display separate measurements for each virtual core.

Q:  The Net Meter shows interfaces I never use. How do I disable them?

A:   Network interfaces are reported on the basis of the SystemConfiguration framework. To prevent interfaces from showing in the list you must disable the interface in the Apple Network preference panel.

Q:  Open source?

A:   MenuMeters is released under the GNU General Public License (GPL) version 2. This makes it both "free" as in beer and "free" as in speech, for those who partition the world using that terminology (I am not one of them). MenuMeters is open source mostly because there isn't a good reason for it not to be, except, perhaps, saving myself the embarrassment of having others look at my first C code from a long time ago.

Although it uses none of their code directly, MenuMeters wouldn't exist without the projects of others released as open source under a variety of licenses like the GPL, APSL, and Artistic License (see "Thanks" section of the MenuMeters Read Me for some credits).