Huge thanks to our Platinum Members Endace and LiveAction,
and our Silver Member Veeam, for supporting the Wireshark Foundation and project.

Wireshark-dev: Re: [Wireshark-dev] [Wireshark-commits] rev 49995: /trunk/ /trunk/: macosx-setup

From: Guy Harris <guy@xxxxxxxxxxxx>
Date: Tue, 18 Jun 2013 12:44:37 -0700
On Jun 18, 2013, at 12:01 PM, Dirk Jagdmann <doj@xxxxxxxxx> wrote:

> - do we want to make a smart decision on the number of parallel make jobs, possibly derived from the number of cores?
> 
> My personal opinion is yes. On OsX using the sysctl mentioned by Guy is probably a good starting point. Adding my own experience you'll want to oversubscribe the number of jobs over the number of cores a little bit, so that when jobs are waiting for I/O action another job can use the free CPU. With my personal experience calculating something like "number of cores"*1.5 seems reasonable, because if you're waiting for the long lasting build job on your desktop computer, you want some "juice" left over for web browsing, email reading or whatever.

Well, I'd expect the OS's CPU scheduler to, at minimum, figure out that a job not blocking for anything or blocking for "fast" events such as file system I/O should run at a lower priority than something that just got woken up due to user action or the arrival of network data (heck, V6 UNIX tried to do that), and my machine seems to be reasonably responsive even with make -j 8 pegging the CPU.

The harder-to-nicely-allocate resource here is probably main memory; my machine handles that problem by having a lot of it. :-)  Run out of that and the paging could make browsing/mail reading/etc. painful (and the compile jobs could fight with each other for memory as well).

> - the other question is, which versions of OsX are we targetting for developer support going forward. Personally I think no serious Wireshark user will use an earlier version of OsX than 10.6, so we should be safe.

The script doesn't work on Leopard *now*, and didn't work on Leopard even *before* your changes, because the versions of support libraries we download either don't configure or don't build on Leopard; I spent some time trying to make it work, but it looked as if it'd just be too much effort, so I quit.