PANELS

CPU & Memory Panel

The CPU & Memory Panel displays the CPU, polyphony & memory usage for the project. See the CPU Panel videos here.

Controls

RAM vs Memory Address Space

The values shown in the CPU panel are not RAM, they are memory address space. If that's confusing, read on: The amount of physical RAM your PC has does not restrict how much memory programs can use. Adding more RAM to your PC does not give FL Studio more memory to play with. Each program is allocated working memory address space by the operating system where it can save and retrieve working data. 32 Bit programs max out at 4 GB per program (although there are workarounds, see 'FL Studio 32 Bit Memory Management' below). 64 Bit programs can access up to 8 TB per program. If there are 4 programs running, there could be 16 GB (32 Bit) to 32 TB (64 Bit) of memory in use between them. As noted, the amount of RAM your PC has nothing to do with this. But there is a catch:

Why we need RAM - If there is not enough RAM to hold the data in working memory data, the Operating System shares the available RAM among the active programs and makes up for any shortfall by putting the remaining data in a file, on your operating system disk/SSD drive as an extension to RAM. If this happens the working memory for FL Studio may be located on your physical RAM (winner!), disk/SSD Page File (loser) or a combination of the two (win some lose some). It should be clear that the more physical RAM you have, the more likely it is FL Studio will always win the RAM allocation 'lottery' and have all working data stored in RAM. As physical RAM is much faster than the hard-drive, FL Studio will run faster and be less likely to experience buffer underruns as audio data is swapped (slowly) off the SSD/disk. See a video on this topic here. NOTE: RAM (20 to 50 GB/s) is still many times faster than an SSD (0.5 to 1 GB/s), so page files still lose.

Why show 'available' memory for FL Studio 32 Bit and not FL Studio 64 Bit - As 32 Bit programs have access to 4 GB of memory, it's quite possible you will exceed that amount. In this case, available memory would drop to 0. If this happens FL Studio will probably crash or start behaving unpredictably, so it matters. FL Studio 64 Bit has access to 8 TB of memory (8000 GB). You will never use that much memory. It's not useful to know that you have 7.936 TB available (64 GB in use). We do show how much memory is used so you can compare that to how much RAM you have, for the reasons discussed above.

Multi-core CPU Processing

If you open the Windows Task Manager and examine the number of cores used and their relative loading you may wonder why your CPU seems to be under-utilized. This may come as a surprise since some marketing departments make a lot of noise about their multi-core 'optimizations'. What controls core assignment? - The Windows Scheduler is responsible for the core assignment, not FL Studio. To complicate matters, logic dictates that many tasks can't be processed in parallel. Let's look at the FL Studio CPU meter vs the Operating System CPU meter in some more detail by considering Metrics and time-scales:

  1. Different metrics - The FL Studio CPU meter measures how quickly each audio-buffer is filled. FL Studio CPU = (Time taken to fill the buffer / Buffer length). The Operating System measures overall CPU and core 'utilization'. Utilization shows the portion of time-slots on the CPU that the CPU scheduler assigned to all programs and the OS. Utilization = (Time-slots filled / Time-slots available). The CPU has a finite number of 'slots' where code/threads can be processed. So utilization is more about how busy the CPU was, not how quickly it was processing any given task. Important to remember, we refer to this idea below. The two measures are related, since a CPU that can do a lot of work is probably able to fill the audio-buffer quickly. However, there is a lot more to audio processing than just CPU capacity to do work and the two measures are definitely not the same thing...even if they are both reported in percent! Utilization makes no consideration to how or precisely when the work needed to be done, and that leads us to consider the idea of time.
  2. Different time-scales - The FL Studio CPU meter is relative to the audio buffer size, 2 - 50 ms. The Windows CPU utilization meter works on a 1000 ms interval. The difference in time-scales is at least a 20x and up to 1000x. While the operating systems CPU meter may show 30% utilization, over the last 1000 ms, there may have been multiple occasions during that period where real-time audio processing experienced interruptions. How's so? If real-time audio 'Mixer threads' (packages of work for the CPU), have to wait on other threads to finish, because they can't be multi-threaded (processed at the same time), FL Studio can experience audio underruns, or at least very high FL Studio CPU meter readings. At the same time, Windows may report low overall and or individual CPU utilization. The CPU could have done a lot more work than it did, if it had something else to do at the same time. The reality for audio processing is the CPU must often wait for various program and system related tasks to complete before it can continue, and so, may struggle to keep up with the very high demands of realtime audio output (generating 44100 samples per second, on an ongoing basis, without an interruption of a single sample, 0.02 ms). Just why the CPU must 'wait' is discussed below:

Let's think about the logic of audio processing. There are often long lists of tasks that must be processed in sequence, they logically can't be simultaneously multithreaded. For example: Plugins must wait for instructions from the Piano roll and Playlist before they make sound. Effects must wait for the audio stream from an instrument plugin before they can process it. Further, it's not possible to parallel-process instruments and FX on the same Mixer channel, or even in the same Mixer routing pipe-line (when one Mixer track is linked to another and another, even FX processing has an order). Then, the Master Mixer track must wait for every instrument > mixer track > effect to be processed before it can process the audio through the Master effects. So logically, there is a lot of waiting that is a natural part of music processing. This means the CPU may not be particularly busy when compared to what it could be doing, yet it runs out of time to fill that tiny 5 ms audio-buffer because so much of what happens must be processed sequentially. TIP: It should be clearer why fast single-core CPU performance is still key when audio processing. When buying a CPU, look for the fastest single-core performance scores, in a package with at least 4 or more physical cores.

So what can you do to minimize 'CPU waiting' and improve multi-core performance? - Make sure that your highest CPU using plugins are routed to independent Mixer Tracks without shared 'Send' Channels. Multi-core CPUs need computational tasks that can be run simultaneously and so split across cores. Each Mixer Track represents an 'opportunity' to create these independent, parallel, processing paths. Each unit in the audio chain from the instrument through to the Mixer track and the effects must be processed in sequence on the same core. If one mixer track is linked to another, then all the instruments and effects on both Mixer Tracks now have a dependency and can't be split across cores efficiently. Symptoms of this situation are audio glitches as individual cores max-out and cause underruns while the overall CPU load still appears to be low. In summary, here is how multi-threading works:

  1. Generators will be processed in multiple threads (if 'Allow threaded processing' is activated and the plugins allow it).
  2. Separate mixer tracks will be processed in multiple threads (if 'Allow threaded processing' is activated and the plugins allow it).
  3. Mixer tracks that depend on the output of other mixer tracks will be processed after those other mixer tracks and probably on the same core.

Testing - If you are testing and comparing CPU loads it is the number of plugins and/or effects that can be processed without buffer underruns. The FL Studio internal CPU meter best reflects this measure (see above). Don't obsess about how cores are used, particularly at low CPU levels, since the Scheduler will try to reduce power consumption by parking (switching off) cores at low CPU load and then turn everything on and even out this distribution as CPU load approaches 100%. See some more information here.

See the tutorial video here.

FL Studio 64 Bit Memory Management

To use the 64 Bit version of FL Studio, run the ..\FL Studio\FL64.exe executable file. We recommend using the 64 Bit version of FL Studio if you have made the switch to a 64 Bit VST library and or you have projects using more than 4 GB.

NOTE: You must be using Windows 64 Bit to run FL64.exe. The 64 Bit executable is installed to '..\Program Files (x86)\Image-Line\FL Studio\FL64.exe' rather than '..\Program Files\Image-Line\FL Studio\FL64.exe' as is usually the case for 64 Bit programs.

FL Studio 32 Bit Memory Management

If you are using the 32 Bit version of FL Studio, the options below will allow you to use more than 4 GB of memory, according to your Windows version:

1. Remove samples & instruments from FL Studios memory allocation

'Keep on disk' and 'Bridged mode' will significantly lower the memory required by FL Studio. Together they will allow you to run projects to the limits of your PC's capability and operating system (32 or 64 Bit).

2. Increase FL Studios working memory allocation (a Windows setting)

Increasing FL Studio working memory allocation - There is an 'FL.exe' file in the FL Studio installation directory. Using this to start FL Studio after making the following changes to your Windows operating system will give FL Studio access to 3 GB or 4 GB (up from 2 GB) depending on your OS:

NOTE: From FL Studio 11 onward the 'FL (extended memory).exe' has been renamed 'FL.exe' and is the default executable after installation.

3. Use the FL Studio 64 Bit version

Open the ..\FL Studio\FL64.exe executable file and load your project. The 64 Bit version of FL Studio has no memory limitations, apart from those that apply to 64 Bit Windows. 32 Bit plugins will be automatically bridged to 64 Bit, although we recommend using 64 Bit versions of plugins in the 64 Bit version of FL Studio, where possible. NOTE: If you are using Windows 32 Bit then FL Studio 64 Bit won't run on your computer.