Which property of CPUs is good for what?
Back in the days clock frequency used to be THE criteria to compare CPUs (or perhaps you had to take into account whether it was a DX or SX). The world was simple back then, but in these fast evolving modern times, it's not so easy to figure out to best spend your hard earned cash on a new CPU.
Could someone please enlighten me as to what kind of applications benefit from different aspects?
When should you choose more cores over clock speed? What is cache and when do you need it the most? Gaming? Video editing? Development?
- Clock frequency:
- Number of cores:
- Cache memory:
- Other:
more cores: good for doing multiple jobs (hosting virtual machines, etc) more speed: good for doing each job faster
cache is basically a much much faster (and smaller) RAM memory that lives on the cpu. The amount you need depends on the workload, and how often the cpu is swapping data in and out, but more is better. It normally "stepped" as the faster cache is more expensive and hence smaller, so you get level 1, 2 and 3 cache, 1 being the fastest, youll normally find a certain amount of each on a cpu. The cpu will try to keep data it needs the most often in the fastest cache it has space for it.
Its a pretty wide ranging question you've asked though, prolly easier to point you to google and search for the proper articles on the subject.
Clock frequency
Each clock cycle, the CPU tries to do work. The faster the clock, the more work it can try to do. However, the CPU is often waiting on stuff to work on to come in from RAM or I/O devices, so this is often the limiting factor in performance more than clock speed. If what you are doing involves heavy math computation or lots of encryption, then a faster clock frequency benefits.
If the type of work you are doing is not math heavy, a slower clock will save power. So many CPUs these days will allow the OS to manage the clock speed in some way for this reason.
Cache
Anything a CPU can work on has to live in RAM. External RAM in DIMMs are slower than the CPU - meaning things that occupy external RAM will make the CPU wait, but cache RAM is at or near the same speed of the CPU. So the CPU's memory controller will try to keep frequently accessed things in cache.
Cache RAM will greatly affect performance as anything a CPU works with has to be in RAM, at least temporarily. You want as much of it as possible for most applications and operating systems.
Cores
If you have 2 cores, then on each clock cycle. basically the equivalent of 2 CPUs can try to do independent work at the same moment. They are still limited by RAM and I/O. Programs and operating systems must be written to distribute work among multiple cores (all modern ones are now).
Many programs will use threads to work on things - threads being a section of a program that can complete or work independently from the main program. On a multi-core system, more than one thread can execute at once, meaning the work completes faster. Programs that don't divide work into threads (older programs, some games) won't benefit, but if you run two such programs, then you'll still benefit since each such program can be on it's own CPU core.
Given that a modern OS does many things in the background and competes for CPU resources against programs to some extent, it's almost always a benefit to have multiple cores, and the more the better. It may not matter too much to have more than 2 if you mostly run old programs or a single non-threaded program all the time.