Measuring OS X Performance

Discussion in 'macOS' started by illjazz, Oct 18, 2010.

  1. illjazz macrumors regular

    Apr 18, 2008
    I have a Late 2008 Unibody 15" Macbook Pro. Here's a little more detail:

    My list of login items looks like this:
    - App Tamer
    - GrowlHelperApp
    - iTunesHelper
    - Path Finder
    - HazelHelper
    - Default Folder X Helper
    - Launchbar
    - CheckUpAlert
    - Choosy
    - Watts
    - Dropbox
    - Blast

    For one thing, games perform terribly. And they used to work quite well! I played through all of Mirror's Edge on this machine and everything was silky smooth. Same with COD5 *and* 6, though I do realize those games were very well optimized and designed from the start to have high frame rates. I also played through Dead Space on this.. the performance wasn't as great as on the other titles mentioned but it was absolutely playable and fun.
    Now, when I run Amnesia: The Dark Descent or Starcraft II, the performance is absolutely terrible. In Starcraft II I get less than 10 FPS and in both games, I noticed a strange effect. The performance fluctuates. It will run smoothly for about 2 seconds, then the frame rate goes to slideshow-level for about 2 or 3 seconds, then back to smooth, back to bad, ad infinitum.

    I did what anyone would try as a first step and killed all apps, especially windowed apps but also background apps that shouldn't really make a difference normally.

    I disabled iStat Menus, Hazel and quit Path Finder, Safari, NetNewsWire, Dropbox, Default Folder X, App Tamer, Watts and, well, just about everything that isn't system related. Low and behold.. Starcraft II was suddenly super smooth.. and that with all graphics related settings completely maxed. (A fact rendered all the more stunning when considering that the Starcraft II- suggested settings were a mix of "medium" and "low" for graphics and a screen resolution of something just over 1000xSomething pixels).

    Since I disabled or quit just about everything, I have no way of knowing which program was causing the terrible performance.

    Does anyone know of an app that can record performance statistics? I'd like to start performance recording, then launch a game and let it run for a bit, then quit and look at the recorded performance data. This could give me a clue as to what is causing the significant performance drop while running high-performance 3D graphics applications such as games.

    If I had to guess, I could imagine App Tamer, Blast and perhaps even iStat Menus being problematic. Blast is very handy but has to keep track of what the latest files are that are being opened by keeping a running list of accessed files. I could see this impacting performance when playing a game.

    App Tamer is relatively simple but it's also a very young app. It was released a very short time ago and is still barely above 1.0. While it is an app designed to IMPROVE performance by pausing background apps automatically, ironically it could also be the cause of performance problems with apps that don't expect to be paused, for example. It even includes a "gaming mode" that instantly pauses all apps not presently in the foreground.

    iStat Menus has been around for a long time and I'd think it's mature enough to not cause performance problems. The only reason I could imagine this being the culprit is because by nature, it has to continually poll the system for the latest hardware sensor data. I could imagine this causing a hit on performance as well, though it's hard to tell how significant that would be.

    Anyway.. apologies for this lengthy post. It's frustrating to suddenly have a system that I *know* could perform well perform this poorly. And I want to find out why. A performance monitoring app such as the one I asked about earlier would be a great first step, I think. Any other suggestions or comments are welcome!
  2. MisterMe macrumors G4


    Jul 17, 2002
    Two questions:
    • What is your hard drive capacity?
    • How much free space do have have remaining?
  3. illjazz thread starter macrumors regular

    Apr 18, 2008
    It's 320 GB and I currently have 153 GB of free space.
  4. talmy macrumors 601


    Oct 26, 2009
    The traditional approach to finding the systems hog is to first check out Activity Monitor which might point to a CPU hogging client. Then the next step is "divide and conquer". Have half of your background apps running and see how the system performs. If it is still slow, the problem app is still running so you run half of those, otherwise you run half of the apps you weren't running. Repeat until you have found the problem. This works if there is one problem app but not if there are many.
  5. spinnerlys Guest


    Sep 7, 2008
    forlod bygningen
    Addendum to above post:

  6. illjazz thread starter macrumors regular

    Apr 18, 2008
    I know how to use Activity Monitor. The thing is that I'd like to know what's happening in terms of performance WHILE a game is in progress. Hence the question about a way to monitor and record performance data while the game process is executing.
  7. talmy macrumors 601


    Oct 26, 2009
    With a second system and remote login enabled (SSH access), you could go to the command line and log in via the ssh command and run top. This gives a display like Activity Monitor. Example:

    server:~ admin$ top
    Processes: 109 total, 2 running, 107 sleeping, 590 threads             10:02:30
    Load Avg: 0.18, 0.18, 0.16  CPU usage: 0.93% user, 2.81% sys, 96.24% idle
    SharedLibs: 3288K resident, 4776K data, 0B linkedit.
    MemRegions: 14616 total, 740M resident, 20M private, 114M shared.
    PhysMem: 779M wired, 1019M active, 1395M inactive, 3194M used, 904M free.
    VM: 247G vsize, 1038M framework vsize, 1245713(0) pageins, 2355(0) pageouts.
    Networks: packets: 39891426/27G in, 43977934/24G out.
    Disks: 1461789/147G read, 3661155/195G written.
    94146  httpd        0.0  00:01.05 1    0    12   164  508K   3808K  2268K
    62048  top          5.7  00:00.39 1/1  0    24   43   1008K  264K   1584K
    62045  bash         0.0  00:00.01 1    0    17   24   288K   244K   956K
    62041  sshd         0.0  00:00.00 1    0    11   67   268K   3488K  720K
    62033  sshd         0.0  00:00.35 2    1    37   68   524K   3488K  4752K
    62032  launchproxy  0.0  00:00.00 1    0    20   35   340K   244K   820K
    62003  ocspd        0.0  00:00.01 1    0    25   29   360K   304K   1256K
    49412- Python       0.0  00:32.64 11   1    74   253  13M    5296K  17M
    48818  mdworker     0.0  00:02.58 3    1    48   59   1496K  5632K  4228K
    48789- Python       0.1  02:18.79 14   1    77   279  21M    5296K  28M
    48784  Canon IJScan 0.0  00:11.35 4    1    78   108  2568K  2440K  7040K
    48775  AppleSpell   0.0  00:00.24 2    1    36   48   984K   5060K  3588K
    48772  Image Captur 0.0  00:00.48 3    1    80   70   2356K  4480K  6796K
    48769  AppleVNCServ 0.0  00:03.51 6    1    73   77   2372K  288K   23M
  8. smithrh macrumors 68020


    Feb 28, 2009
    top will write to standard out as a log, so while it would be nice to see top running real-time, you can just log top's output and go back to it and see what was going on while the game had the whole screen buffer occupied.

    edit: since I'm not sitting at a Mac right now, I couldn't bring up a man page for top, but I found one on the Internet, looks like the -l option is what you'd want (that's a lower-case L)

    Note, running top at high frequencies can actually impact the system. You might want to try intervals of 2 or even 3 seconds.

Share This Page