I have started a job that will require processing of large datasets using python and ArcMap (separately and in conjunction with ArcMap). I have a 2011 27" iMac with the 3.1 Mhz i5 (3rd generation I believe) quad core processor, 20 GB of ram, and 1TB 5400 rpm hard drive. I believe this machine could handle the work load adequately as is, but this is a part-time gig and I want to maximize my efficiency with respect to computing power and impress my employers. I don't want to buy a new computer right now (maybe in two years or so), for two reasons: 1) funds are currently limited, and 2) I think with the right upgrades, in the right order, with a focus on increasing speed and then storage, I could use this machine for the next 2-3 years.

Where should I focus first? I see the options as:

  1. Replace the pair of 2 GB ram modules with a pair of 8 GB ram modules to max out my ram at 32 GB.

  2. Add in a secondary hard drive in the form of an SSD, to store applications and important inputs to different processing steps.

  3. Replace the 1 TB hard drive with a faster and larger regular hard drive. This limits the need to transfer to/from externals through the USB 2.0 ports.

Obviously all three options could be pursued, but is there some efficient order that gives me the greatest returns up front, allowing me to stop upgrading when the iMac seems solidly up to the task?

  • I'm pretty sure this will get closed as either opinion-based, a dupe, or off topic, but the answer is a) more RAM, b) more SSD, internal. There's nothing you can do to speed up a USB 2 drive, it will always crawl.
    – Tetsujin
    May 8, 2015 at 22:33
  • I'd second what Tetsujin says although if you already have 20gb ram then I'd go for the ssd first. Couple of years ago I upgraded a 2010 iMac with an internal ssd and it was fairly straightforward. Huge speed difference. I now have a retina iMac and I don't think it's any faster!
    – amergin
    May 8, 2015 at 22:37
  • This is attracting too many bad questions. Let's see if you can ask a more narrow follow on question if needed
    – bmike
    Aug 21, 2015 at 16:07

2 Answers 2


You are the best person to answer that.

Use the Activity monitor and take a look at RAM and HD current usage.

That will tell you what you need most. Usually the more RAM the better, that in turn also removes some load from the HD, but a fasted SSD could help in the initial step of loading the app in to the RAM.

So if you open and close lost of apps and save lots of stuff a faster SSD will help. If you initially open lots of apps, but then just use them, without need to constantly access the HD (SSD) then RAM size matters. See it this way: RAM is the supper fast (temporary) storage between the CPU and the Hard Drive. Without improvement in HD (SSD) the boot up and the shut down will not be faster, but during the normal usage with large RAM you will benefit.


If you exceed 20 GB of RAM (I would say also, if you exceed 8 GB of RAM), you're doing something wrong with your code / algorithm. So try to optimize it to achieve better performance and if you can't optimize, go for high parallelism (cloud computing).

Moreover you can use you HD space as swap space for temporary store information. I would opt out for SSD upgrade, and making it the primary drive with OS installed on it (Python interpreter will run on it).

RAM upgrade and HD upgrade (from 5400 rpm to 7200 rpm or 10000 rpm), in my opinion, are useless. A 10000 rpm hard disk is slower than the low end SSD.

Not the answer you're looking for? Browse other questions tagged .