Skip to main content
DEVOPS BASICS

Memory Intensive Apps vs. CPU Intensive Apps

โ€” Aswin

In this blog, we are going to look at why some applications consume more memory and some consume more CPU. letโ€™s unveil the reason behind this.

Before that, we have to know why memory and CPU are important, and what kind of roles they play in our computer.

Importance of memory and CPU

Memory

Just assume, RAM is your work table, you have placed all the things on top of that table so that you can easily access it when you want. If your desk space is expanding you can place more things.

RAM will also do the same thing, it will temporarily store the data so that when the CPU needs that, it can easily access it.

A simple example is that you open an application for your work, and it starts using the RAM space so that your work becomes smothered, the application will stay in RAM until you close the application.

CPU

CPU is the worker, who is working with the table. The CPU takes the decision and instructs to complete a task. The CPU can process the information and execute the take of the application.

So the CPU power is increasing, and you can easily finish the tasks in less time.

When we play a game, a lot of processes will go on, CPU will handle all these processes while we are playing it.

In our daily lives, we use multiple applications, which could be mobile apps or desktop apps, they are categorized into two sections: memory-intensive and CPU-intensive applications.

Memory-Intensive Applications

Letโ€™s analyze, what makes an application is consuming more memory.

  • An application needs databases to work with or if it is necessary for data processing tools for that application, then that application consumes more memory.
    • Example: DNA Sequencing Analysis
  • An application that handles multiple tasks simultaneously, then more memory to store them, then they can easily access them when they want.
    • Example: Real-time Air Traffic Control System
  • An application, that is handling the caching processes, then definitely needs more memory, because cache data should be frequently accessed.
    • Example: Content Delivery Network (CDN)
  • An application that works with large files also needs a good memory.
    • Example: Video Editing Software
DatabasesMySQL, PostgreSQL, MongoDB
Data Processing ToolsHadoop, Spark, Apache Kafka
Web BrowsersChrome, Firefox, Safari
Video Editing SoftwareAdobe Premiere Pro, Final Cut Pro, DaVinci Resolve
Graphics Design ToolsAdobe Photoshop, Illustrator, CorelDRAW
Virtualization SoftwareVMware, VirtualBox, Hyper-V

CPU-Intensive Applications

Applications that need high processing power to handle tasks or complex calculations are called CPU-Intensive applications.

  • In an application, that needs to simulate data and solve mathematical or scientific calculations, there is a large amount of processing power required.
    • Example: Computational Fluid Dynamics (CFD)
  • For an application, that has to handle the rendering process or any kind of encoding, high processing power is required.
    • Example: 3D Rendering in Game Developement
  • Applications that involve data analysis or machine learning do need good CPU power, as well the artificial intelligence programs.
    • Example: Natural Language Processing (NLP)
  • One of the very common term encryption and decryption, if an application handles this, then that is also a CPU-intensive application.
    • Example: Password Hashing
Scientific ApplicationsANSYS Fluent, COMSOL Multiphysics, MATLAB
3D RenderingUnreal Engine, Unity, Blender
Video EncodingHandbrake, XMedia Recode, ffmpeg
Machine Learning and Artificial IntelligenceTensorFlow, PyTorch, scikit-learn
Encryption and DecryptionVeraCrypt, GPG, OpenSSL
Crypto MiningBitcoin Miner, Ethereum Miner, Monero Miner

Optimization Strategies

Memory Intensive Applications

  1. When choosing a data structure, we have to make sure that it is highly organized. so that it wonโ€™t occupy unnecessary space.
  2. Implementing a caching system helps to minimize the memory usage from our frequently used data, and it will reduce the slowness of accessing apps from HDD to RAM.
  3. Regularly monitoring the memory, really helps to avoid the usage of unwanted apps occupying the memory space.
  4. When querying a database, we have to be more specific, so that we can save time and improve the optimization.
  5. Lazy loading is also a good option to reduce the high memory usage because it only use the memory for the immediate need, other process will slowly be done.

CPU Intensive Applications

  1. Check and identify the optimization method to minimize the complexity of the algorithms and also which should be compatible with the task to avoid unnecessary CPU usage.
  2. Parallel processing is a way to optimize the CPU, this segments the job into smaller units and lets cores process the job.
  3. Instead of processing similar tasks one by one, we can utilize the batch processing method to process multiple jobs at the same time.
  4. Some tasks will wait for the completion of other tasks or external resources, in that kind of situation we can use the asynchronous programming techniques to efficiently use the CPU.
  5. Regular monitoring of the CPU usage also helps to identify the unwanted CPU usage, finding them and organising them will help to improve the CPU organization.