Buying a new PC; what will make IntelliJ run fast?
Work is about to get me a new PC which will be used almost exclusively for development, mostly in IntelliJ. I'd be very grateful for any advice on what to focus my budget on... . (I.e. more cores, more memory, faster memory, newer architecture, etc..) to get the IDE to run smoothly + compiles to be fast. In case it's relevant, I'm likely going to get something from http://www.quietpc.com/ and the budget is about £800. VAT is reclaimed, so that's actually more like £960 on the site.
thank you very much!
Mohan
请先登录再写评论。
Hi,
I will try to take a crack at it. My personal recommendation would be to get a Intel iCore 7 processor with at least 8 GB RAM. You will need the processing power and the memory if you plan on using Virtual Machines using Vagrant or something to speed up your development work. Getting a SSD harddisk can also aid in your compile time but you will still need the computing and memory to make the overall process more efficient. Here's an interesting video showing the SSD vs a standard SATA harddisk. https://www.youtube.com/watch?v=vB5Z16DB1F4.
Unless you are doing 3D rendering, I don't think you will need a fancy graphics card but if you do plan on creating a program that works with 3D then you will need a good graphics card as well.
You should focus on these things in no particular order:
-CPU frequency
-number of cores
-SSD
-memory size
The rest is measurable but negligable:
-chipset and motherboard
-memory speed and latency
-cpu architecture (but forget about AMD)
Do not buy anything less but 4 cores - you can take i5, or i7 (for LGA1150). Take i7 if you want to use virtualization.
Although compilation of small projects will probably not benefit much even from 2 cores, compilation of big projects like intellij-community can benefit from 4 cores (I tested it by disabling 2 cores for the compilation process), but I doubt that HT will make any difference (I did not measure it, I only read that HT can actually slow some things down, so if you do not need virtualization and want to save some cash, take i5).
CPU frequency is critical, if you want the best, then you need to look on the single thread performance, and overclock - http://www.cpubenchmark.net/singleThread.html
Currently there is no reason to take anything but newest Intel CPUs on LGA1150 (LGA2011 is too expensive). I would not buy anything but i7-4790K or i5-4690K (I use i5-3570k@4,4Ghz, no reason to upgrade yet). Buy a better cooler if you want to overclock.
SSD is absolutelly necessary. You need to use it for everything: OS, IJ files, project files, temp, page file (you can read that you should not put a page file on SSD, because it shortens the lifetime, but that is absolutely insane). Excluding IJ and project files from an antivirus will help greatly (I managed to convince the IT security in a huge corporation to grant it, so with some luck anyone could do it as well).
I did not measure any difference between SATA1 and SATA3 SSD - 100MB/s vs 500MB/s, so you do not need to get the fastest SSD. But difference between SSD and HDD is crazy. (What also makes a difference is a filesystem, I measured that FAT32 Ramdisk is slower than SATA1 NTFS SSD.)
Samsung is the best on the market with the PRO models, you could save money and go for EVO models or Crucial - dunno which is really better, everything has its own problems, you could go for different manufacturers as well.
Memory size is a no brainer, you must know how much you need, I would say 8 GB is a minimum for anyone.
There are small performace differences between motherboards, but I would not bother with it. You want to take a chipset allowing overclocking (Z87, Z97), or whatever has features you need - http://en.wikipedia.org/wiki/LGA_1150 (even the cheapest B81).
You don't need to think about memory speed or latency, 1600 Mhz CL9 is just fine - and cheap, take whatever someone recommends.
Integrated graphics card is ok - supports 3 monitors, depends on you whether you need a dedicated one.
If you do not need a case, then do not buy it. I have no case, do not hear my PC, and I can easily disassemble it and put into a backpack. :^O
You can look at online PC magazines for concrete build recommendations. You could take something like this: http://uk.pcpartpicker.com/p/7gp4kL - and save about £200 compared to http://www.quietpc.com/ for the identical performance.
btw how come that I received an email notification about this thread?
Thank you very much for hte advice!
Intel Core i7-2600K @ 3.40GHz, 32Gb ram, ssd on Linux mint.
Often times idea is struggling, close to unresponsive. sometimes it's quite obvious such as opening a big files, sometimes however, especially after running uninterrupted for a while I can see a thread spanned by idea that just hangs at approx 100% on one core..and no obvious stacktrace in its logs: I know then to restart it and usually it's all good again.
What I would like to see in idea is more parallelization as, regardless of the vm options I set, there are still many tasks that this ide performs on one thread.
Issue tracker is your friend.
Hangs on EDT produce threaddumps, if not then I would look into VisualVM and see if it hangs on GC or where... or just capture CPU usage data (https://intellij-support.jetbrains.com/entries/29983118-Reporting-performance-problems) and let Jetbrains fix it.
I'm going to take a crack at this, but I'm only going to leave you with more questions.
First of all, you don't have to let virtual machines influence your decisions for the most part. If you're running Linux with Apache for testing purposes, you can have a lot of VMs before you'll notice speed issues from either RAM or CPU. These VMs are going to take up a minute amount of the CPU and RAM even when you're making direct calls. Now if you have a network setup and you're running intensive operations on all of the hosts at the same time, then reassess.
The slowest part of IntelliJ is how it pre-caches everything. When you bring in a new library, it pre-caches all the symbols for a speedy response. This is where I really notice the slowness in PHPStorm. If I `composer require` anything, it'll take a long time to process it. Also, a big concern is the processing of composer dependencies, which some of you know, can take a lot of CPU usage. Also, RAM is important for storing the caches and accessing them quickly.
Now it all depends on how PHPStorm handles the problem of processing symbols. Did they use divide and conquer with a variable amount of threads? Did they exploit the threads on a CPU to bring specific performance gains? I would bet they did. They probably have many experienced computer-science majors should have been able to figure this out by now. So what I came here looking for is the canonical answer about their algorithms that process symbols. If I knew that I would know: Does a higher core count matter? Does a higher CPU clock matter more?
I'm also quite certain that faster storage, such as NVMe, which by writing this has just become cheap recently, or Optane, which has just come out recently, will significantly affect the caching process.
I would really like to see some benchmark of AMD vs Intel.
Vojtěch, your standard MIPS benchmark will do. The operations are sure to be very rudimentary. It's not going to benefit from things like special media acceleration features that would be the primary difference between Intel and AMD.
Though, it might benefit from a RISC architecture.