What is the relationship between CPU usage and RAM?
I have seen many times that the CPU usage is 100% and only 50% of the RAM is in use. What is the relationship between these two? How does one's performance affect the other?
The CPU processes (performs instructions on things, such as adding) stuff in memory. RAM is just part of the memory pyramid (see below). So when you are processing lots of data, that data ( or maybe large portions of it) will likely get loaded into RAM so it is ready for the cpu, this is to speed things up because RAM is faster to access than storage devices. So CPU usage and RAM can often correlate, but don't have to.
A basic example might be an image editing program. I load up my 20MB jpeg, the program reads the entire image, and the OS keeps that in RAM for you (all working memory looks the same to the program, the OS decides if it goes to the page/swap file on disk or RAM). So the image is in RAM waiting to be processed, but I go for coffee before telling the program to apply some silly filter, so the CPU isn't doing anything: high RAM low CPU.
I come back, apply the filter to add some bubbles to the image, and the CPU goes to 100% and even more memory gets used because it keeps the preprocessed image in memory, so I can undo the change I just made. High RAM, high CPU.
When the program is done adding the bubbles, the CPU drops, but maybe not the memory.
Of course, it isn't quite this simple :-)
It's the same relationship as your brain have with a book. The faster brain = the faster your read, the bigger the book = the more pages it can contain.
RAM is used to save data. CPU time is used to process data.
There is no relationship between CPU and memory usage. A process can occupy all CPUs of a system but use only a minimal amount of memory. Also, a process can allocate all memory available on a system but only use minimal CPU time. So there is no relation between both.
There's no consistent relationship between the two. CPU usage depends on how much processing or work that needs to be done by the app. RAM is how much space/memory it needs to hold the app while it's running.
More RAM = you can run more apps concurrently
More CPU = you can run more complex calculations/operations
Hope that helps.