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:  MenuMeters tells me that "Menu Extra Could Not Load." What should I do?

A:   This message is an indication that your system has a conflict with the MenuCracker tool bundled with MenuMeters. For the most users the issue is that MenuCracker is incompatible with Apple's "CPU.menu" (from the "Processor" preference pane, part of the CHUD tools). To correct this problem you must either disable Apple's CPU.menu and logout/relogin or switch to using Unsanity's Menu Extra Enabler in place of MenuCracker.

For further discussion of this issue please see the MenuMeters Read Me file.


Q:  Why does the CPU meter User/System percentage display sometimes seem lower than the CPU graph/thermometer?

A:   As of version 1.0 MenuMeters counts the load of "nice'd" processes separately from user or system load. The "nice" value is displayed with its own color in the graph and thermometer displays. However, when displaying the separated user and system percentages there simply isn't room to add a third number for the "nice" percentage. Instead MenuMeters uses the same method as Darwin's "top" command and calculates user and system load excluding the "nice" processes. Generally this results in a reading that reasonably matches the graph or thermometer value, however in some instances, especially on systems with large background "nice" processes like Seti@Home or Folding@Home the values may not always line up closely. Since "top" exhibits the same behavior this is not considered a bug.


Q:  Why is the CPU temperature display not supported on my machine?

A:   CPU temperature (thermal register) support is limited to processors and versions of Mac OS X which support the sensor. Although earlier versions of Mac OS X supported temperature readings on some G3 and G4 models, kernel support for this functionality was removed in 10.3.5. If you use Mac OS X 10.3.5 or later MenuMeters will not display CPU temperature readings.

Support for fan control sensors (post-2003 G4 and G5 machines) will be added to MenuMeters in a future release.


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 console 'top' program or the Process Viewer 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, iSync, 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 (typically about 1-2% spiking to 5%) 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 moderate amount of CPU time, and the actual process of drawing the graphics uses a lot more. In fairness MenuMeters at its default settings uses about the same CPU time on my development machine (PowerBook G4 800) than the four utilities it replaced (and it does more). I expect that on most machines MenuMeters will add about 1-2% more CPU usage to SystemUIServer on average, with occasional spikes as much as 5-10%. Using a wider sample size in top will help to give a more general average so the spikes may not be visible.

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


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 using the "Network Port Configurations" menu item.


Q:  Open source?

A:   MenuMeters is released under the GNU General Public License (GPL). 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 in a long time.