I have found both Safari and Firefox use a very high amount of CPU during downloads (>200% CPU usage), can anyone explain as to why this happens? It occurred both before and after a complete system reinstall. It also uses the same amount of CPU despite download speed. I am using Mac OS 10.8.

enter image description here

enter image description here

I also had images of Firefox doing the same thing, but accidentally deleted them during the reinstall.

  • Uhh so it's using 260% of the CPU while downloading? That seems impossible. :) – Ƭᴇcʜιᴇ007 Sep 19 '13 at 17:24
  • hence the question :) Does a higher then 100% percentage mean it is using multiple cores for that process? – andrsnn Sep 19 '13 at 17:25
  • I'm not an OSX user so I can't say for sure, but in the Windows world, no, the CPU Percentage is 100% max (1 busy core in a 2 core system would show 50% use for example), and I would expect the same from any modern OS -- but again I don't know for sure. That's why I commented on it. It seems crazy, but I have no answer. :) – Ƭᴇcʜιᴇ007 Sep 19 '13 at 17:28
  • 2
    I see, so it should be averaging the cores. That it is. I've had a problem along these lines with QuickLookSatellite as well. superuser.com/questions/617658/… – andrsnn Sep 19 '13 at 17:29
  • Activity Monitor (or top or ps) doesn't "average the cores", so 200% means 100% for two cores. – Lri Sep 19 '13 at 22:55

I only came across this question today and I hope this is not too late an answer, but the short answers are yes (to your first question "I have found both Safari and Firefox use a very high amount of CPU during downloads (>200% CPU usage), can anyone explain as to why this happens?") and yes (to your comment question "Does a higher then 100% percentage mean it is using multiple cores for that process?").

The short explanation is that your Mac contains a multi-core processor - I'm guessing a minimum of 2 given that you are running OS X 10.8 - which supports hyperthreading, and this means that each physical core (a physical CPU in itself) presents multiple "logical" cores to OS X which it treats as independent logical CPUs. A process can use up to 100% of each logical core, so n logical cores means a maximum of n x 100% CPU usage per process. Hence your Activity Monitor (like Task Manager in Windows) showing CPU usage bars for each of these logical cores (as long as they are <= 4, according to Apple technical documentation on CPU usage) and you're getting readings like 157% for Firefox etc. This is not unusual and probably normal if you have multiple downloads, apps, games etc. running at the same time. But note: different app processes live in different parts of the user virtual memory space, so it is also possible to see multiple app processes which have >100% CPU usage at the same time, e.g. Firefox 157% and iTunes 200% etc.

It is impossible to see a >100% CPU usage for a process in a single-core CPU system, unless the reporting tool you are using is faulty. Firefox probably spawns a thread for each download (if you have multiple simultaneous downloads), in addition to a number of other threads for tabs, rendering etc. and other stuff going on, and your reading of 157% for the process clearly means some of these threads were being run on at least two different logical cores at the same time. A reading of 296% would indicate at least three cores being used etc. The CPU usage for a process on a multi-core processor / multi-threaded OS system is an aggregate of the CPU usages for all the threads running inside that process.

Note: on a practical level you may want to consult this if your downloading problems are specific to Firefox or are occuring repeatedly.

You can find out information on the number of physical/logical cores in your computer by using the sysctl command (in the BSD API if you are interested) - if you execute the following command in your terminal app:

$ sysctl -e hw | grep "cpu="

you should see something like this (note the comments I've inserted, not part of the output)

hw.ncpu=4         # no. of cores available to the kernel
hw.activecpu=4    # no. of logical cores actively being used by the kernel
hw.physicalcpu=2  # no. of physical cores
hw.logicalcpu=4   # no. of logical cores
  • Hope this is not against the rules, but for a more extended discussion, inspired by this question, please see this post. – ramius Jan 18 '15 at 23:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.