Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

Your CPU setup

  • i7 2.2G

    Votes: 6 50.0%
  • i7 2.6G

    Votes: 5 41.7%
  • i9

    Votes: 1 8.3%

  • Total voters
    12

zdproject

macrumors newbie
Original poster
Jul 20, 2018
5
3
Hello, new comer here seeking advice buying new Macbook pro 2018. I'm a Computer Science undergrad and I've been using my first 13'' rMBP (First Gen, 2.5G i5, manually ungraded 512 SSD) since 2013. Only this year have I'm assigned the newer 15'' 2017 Macbook pro (2.8Ghz) during my internship program, but I do like it very much after using it and am not bothered by butterfly keyboard. I'm considering replace my 2012 MBP for next 5+ year.

I've been researching the MBP lineup for past few days but most of the review are from video producers demonstrating usage on Final Cut Pro and Adobe Premiere. Although I use Lightroom and Photoshop for occasional RAW image processing, more often my laptop is for working/studying, so I'd like to hear voices from developers as well. I'm trying to find a 15'' pro with 1) a CPU balanced between multi-core and single-core performance, 2) large enough memory for running at least one Linux VM instance, and/or at least two docker container instances while developing using IntelliJ family products or Visual studio code w/ 16+ chrome tabs, and 3) enough disk space (I have used about 315G in my old MBP after moving my Lightroom directory to external HDD, would be nice to move it back).

What I've experienced from 2017 MBP is that it's still lagged when processing large source code (4000+ line) in IntelliJ. I understand that it's unlikely to fix this issue given the file size but given the allegedly 8th Gen upgrade and also throttling issue I wonder if developers should experience speedup in coding. I'm also wondering if it's worth going to 32G (16G seems acceptable so far, 8G is probably not enough).
 
Last edited:
  • Like
Reactions: RandomDSdevel
You won't need (or really benefit) from anything but the base model for anything you do in undergrad CS. Development work isn't actually so demanding on modern computers, and also doesn't necessarily scale too well with many cores. This is true whether you do XCode development, web development, statistics code, scientific computing, big data, or whatever. You won't need any more than 16 GB RAM, and frankly wouldn't need a 6-core CPU either (though nice to have). Most dev tasks benefit more from single core performance than multi core.

If your code editor has problems with 4k line source code files, then it's a software issue rather than a hardware issue. Get better software. That said, if that's your whole project then it's not very large at all. But also, it's probably a good idea to limit source code files to 1k lines of code or so. This is a rule of thumb that seems to hold up to the test of time. It's more of a human cognition thing than a hardware thing though.

I have Linux VM instances that I sometimes don't give more than 1GB of RAM and they run absolutely fine. How large you need them depends entirely on what you want to do with them. If you need them to be >8GB, then you would want to consider getting 32GB of RAM, but otherwise 16GB is easily fine.

My main dev rig atm is a 6-core coffee lake with 16 GB RAM. I used to have 32GB but even with VMs and heavy dev work I wasn't really using it, so I took some of it out and it made no difference really.

I'm looking at the base 13" model myself, though that's with me having a desktop system as the main rig. If the MBP were my only machine I would go for base 15", but really the CPU or GPU upgrades are not going to give any performance improvement at all. Memory should be your first priority, SSD second, and everything else is way last.
 
For undergrad I’d probably get a 13 and a 34” ultrawide for the same money if not cheaper. If you have a 2017 idk if you’ll be getting much benefit from getting a 2018.
 
For undergrad I’d probably get a 13 and a 34” ultrawide for the same money if not cheaper. If you have a 2017 idk if you’ll be getting much benefit from getting a 2018.
He wrote that he has a 2012 MBP. Solid upgrade from there. Agree that the 13" is arguably a better choice for the purposes stated here. I would go with 13" if he can keep it on an external display most of the time, but consider the 15" if the internal display will see the most use.
 
  • Like
Reactions: fatalogic
He wrote that he has a 2012 MBP. Solid upgrade from there. Agree that the 13" is arguably a better choice for the purposes stated here. I would go with 13" if he can keep it on an external display most of the time, but consider the 15" if the internal display will see the most use.
Yea I got confused by the last part about experience on the 2017. I mostly use the command line so I’ve been having a lot of fun messing around an IPad Pro set up for mobile work.
 
Most dev tasks benefit more from single core performance than multi core.
Agreed. Though it's possible to gain speedup through parallel compilation. Also nice for simulating distributed cluster, which is one of my intern project. That's why I'm asking for a balance between multi-core and single-core performance.

limit source code files to 1k lines of code or so
Agreed. I found reading long code mentally trying. Though it's not really my say over the code style; I was only contributing to the existing code base.

Get better software
IntelliJ is probably the best for Java development though.

If the MBP were my only machine I would go for base 15", but really the CPU or GPU upgrades are not going to give any performance improvement at all. Memory should be your first priority, SSD second, and everything else is way last.
To be honest I still live with my old 13'' 2012 rMBP fine but it seems to be starting getting overwhelmed at multi-tasking. I'm mostly planning for the near future because moving a desktop from apartment to apartment is not that easy. Obviously I won't be training a full neural net on my laptop but it'll be nice that it can last long.
[doublepost=1532224293][/doublepost]
For undergrad I’d probably get a 13 and a 34” ultrawide for the same money if not cheaper. If you have a 2017 idk if you’ll be getting much benefit from getting a 2018.
No that's still corporate property, we return the laptop at the end of internship.
[doublepost=1532224704][/doublepost]
34” ultrawide for the same money if not cheaper
Can you even wrap a 34'' screen in a moving box?
 
  • Like
Reactions: RandomDSdevel
Your job doesn’t have servers you can connect to? As far as parallel processing goes undergrad coursework will teach you about it but it won’t require a machine with lots of cores.

Linux is very light weight and kinda useless if you have a Mac. Unless you want to learn about th OS the Terminal app is all you need. Get used to Brew and install software you need. My job has all Linux computers I SSH to and work off from my Macs. I use Visual Studio Code for documentation and when I don’t wanna use vim. I never use the linux machines’ UI just use them for processing.

The poster above that mentioned big data is mostly right except about big data. I do Bioinformatics and having more RAM definitely helps. Most our data sets are huge genomic data per organism. I’ve worked with a lot of organisms and can tell you the having enough RAM for it is big cause you’re gonna be working on multiple projects. While something is running you’re gonna want enough ram for your parsing, debugging etc. 16GB should be enough though. Modern OS’s make use of virtual memory. The new Pros have amazing SSD speeds. You’ll be fine with 16GB.

He’s also right about the 1k rule too but that’s not important for this post.

You won’t need a lot of storage either. Get used to cloud services. I have a 256 GB 2014 Pro and only used about 50% capacity. Videos/photos are in iCloud. For context: I have two big Android projects, a couple small iOS and Android projects, all my coursework, lots of programs ranging from photo editing to IDE’s, and lots of Android/iOS SDK versions! The cloud is your friend, use it (and GitHub!).

As an aside, don’t be that CS student that puts a sticky not over his webcam. You should be smart enough to know that’s useless.
 
  • Like
Reactions: jeremiah256
Agreed. Though it's possible to gain speedup through parallel compilation. Also nice for simulating distributed cluster, which is one of my intern project. That's why I'm asking for a balance between multi-core and single-core performance.
Sure, parallel builds are faster, but how much faster? I have a ~30kloc hobby project spread across a few hundred source code files. When I make a parallel build from scratch it takes 1m28s. A single thread build takes 3m35s. So the parallel build is 2.5X faster, but has 6X the processing power. When I build this same project single threaded on a 2012 MBA, it takes around 6m. So my current rig does it ~50 faster. But if you look at benchmarks, my current rig annihilates any MBA. Or frankly just about anything, I build this box specifically to be as fast as possible for this exact workload. I don't think you can do better with any hardware on the general market.

The 2018 MBP will of course land somewhere in this spectrum, presumably much closer to my rig than to the MBA. But even the i9 won't be as fast as my rig. So... based on my experience, I strongly expect that CPU upgrades won't make much of a difference on either model, the 15" would probably be faster than the 13", but not anywhere close to 50% faster that you might expect from the core count.

More cores are nice for exactly the reasons you stated though, and there are other workloads where you actually do get the speedup. The software that I develop for example. I want as many cores as possible for *running* it, I just don't need them for building it. :)
[doublepost=1532226631][/doublepost]
The poster above that mentioned big data is mostly right except about big data. I do Bioinformatics and having more RAM definitely helps. Most our data sets are huge genomic data per organism. I’ve worked with a lot of organisms and can tell you the having enough RAM for it is big cause you’re gonna be working on multiple projects.
There's a fair difference between working on it professionally though, and just doing uni projects. I've done Bioinformatics on my old 2012 MBA with 4 GB of RAM. While that's certainly not something I would recommend, it was possible and it chewed through virus DNA and vegetable DNA and insect DNA and whatever at least well enough to finish assignments. Point is though, don't get less than 16GB, probably no need to get 32GB. And if we're talking really serious big data, that's work for servers just like you wrote, and nothing a laptop can really do.
[doublepost=1532226849][/doublepost]
IntelliJ is probably the best for Java development though.
Subjectively. But regardless, I wouldn't expect IntelliJ to perform significantly different on the 2018 compared to the 2017, regardless of whether we're talking about the 13" or 15".
 
virtual memory
Well Virtual memory is still in large part memory right, except for page swapped out.

Your job doesn’t have servers you can connect to
Get used to cloud services.
I guess I should explain it a bit clearer. It's for my personal use, e.g., coursework, individual project, open source project contribution, instead of my job. And yes currently I'm doing system programming and is exactly why I'm wary of the upper limit of multi-core laptop. I'd just like to have it a bit more versatile so it not only compiles code but also can run a small cluster, or a quick demo of ML.
I hope I can be as optimistic about cloud but it's still nice to have a local copy, especially because I need to see my family n friends in China during the break, I don't want to be entangled with the nasty network service.
Thanks for the input tho, so what would be an ideal 2018 MBP setup for you?
 
  • Like
Reactions: RandomDSdevel
Btw, just out of interest, I made a build of my project with 4 threads instead of 6, and it built in 1m31s so effectively no slowdown at all. Increasing to more than 6 threads also doesn't make it build any faster.
[doublepost=1532228111][/doublepost]
I guess I should explain it a bit clearer. It's for my personal use, e.g., coursework, individual project, open source project contribution, instead of my job. And yes currently I'm doing system programming and is exactly why I'm wary of the upper limit of multi-core laptop. I'd just like to have it a bit more versatile so it not only compiles code but also can run a small cluster, or a quick demo of ML.
Even the 13" can probably do this just fine. More cores is nicer for sure, and by all means get the 15" if you benefit from the extra cores. Just don't think of it as a necessity, it's more of a nice-to-have.
[doublepost=1532228626][/doublepost]
Well Virtual memory is still in large part memory right, except for page swapped out.
Heh, technically all memory is always virtual memory. Direct mapped memory went extinct sometime in the 80s. But on a more serious note, all memory in modern computers is hierarchical in nature. You can think of RAM as just a cache for the part of your working set that you need access to in the next few seconds or so.
 
Well Virtual memory is still in large part memory right, except for page swapped out.



I guess I should explain it a bit clearer. It's for my personal use, e.g., coursework, individual project, open source project contribution, instead of my job. And yes currently I'm doing system programming and is exactly why I'm wary of the upper limit of multi-core laptop. I'd just like to have it a bit more versatile so it not only compiles code but also can run a small cluster, or a quick demo of ML.
I hope I can be as optimistic about cloud but it's still nice to have a local copy, especially because I need to see my family n friends in China during the break, I don't want to be entangled with the nasty network service.
Thanks for the input tho, so what would be an ideal 2018 MBP setup for you?

For me:
512GB Storage (to be honest it sounds like over kill to me right now but in the future it might be just right considering every app/program/whatever is getting bigger and bigger)
32GB RAM (future proof the machine. I'd wanna keep it at the very least 5 years up to maybe 7)
2nd tier upgrade offered by Apple for the Hexacore (I do some photo editing and resource creation for apps and websites, I also wanna get better at video editing and music creation)
15 Inch (I wish they still offered the 17 inch, I love more real estate)

The way I understand virtual memory is:
You have storage and RAM, two of the lowest versions of memory. Low as in its cheap to make, but slower than the expensive stuff. If RAM gets full, it takes over some storage and swaps whats necessary to RAM.

Like someone mentioned there is a hierarchy of memory.
If I remember THAT correctly it should be:
Cache (with various levels)
RAM
Storage
Each swapping back and fourth to get access to the fastest memory when they need it. Nowadays using storage shouldn't be detrimental and probably be relatively unnoticed by users.
[doublepost=1532533519][/doublepost]
There's a fair difference between working on it professionally though, and just doing uni projects. I've done Bioinformatics on my old 2012 MBA with 4 GB of RAM. While that's certainly not something I would recommend, it was possible and it chewed through virus DNA and vegetable DNA and insect DNA and whatever at least well enough to finish assignments. Point is though, don't get less than 16GB, probably no need to get 32GB. And if we're talking really serious big data, that's work for servers just like you wrote, and nothing a laptop can really do.

Fair enough. It does seem like he wants it for personal use, In which case if all he's doing is programming he should be fine with 16GB.
 
  • Like
Reactions: RandomDSdevel
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.