Windows has always had to cater to an extremely wide spectrum of users, since it's far and away the world's most widely used desktop operating system. And that has meant that although it is popular with creatives - much more so than it used to be thanks to the work Microsoft has done to improve its stability over the years - it still has some technical limitations that can hold it back for some high end creative tasks.
One such limitation is about to be blown away however, with the introduction of a forthcoming update to Windows 10 - which you can read about in detail here. It's about the way Windows manages its resources, and concerns the fact that modern, multi-core PCs with tons of RAM are capable of running more processes than the operating system can actually deal with, due to a longstanding limitation. But the important part for musicians is this, as stated by Microsoft.
"As PCs get more powerful, musicians have created increasingly complex projects with more tracks, more instruments, and deeper effects chains. As a result, some of those musicians were running up against a FLS (Fiber Local Storage) slot allocation ceiling that prevented them from loading into their DAWs (Digital Audio Workstations) as many unique plugins as they’d like. This build greatly raises that per-process FLS slot allocation ceiling, allowing loading potentially thousands of unique plugins. Beyond musicians, this change will positively impact any application that dynamically loads hundreds or thousands of unique DLLs that have statically-linked Visual C++ runtimes, or otherwise allocate FLS slots."
Synthtopia spoke to Windows expert Pete Brown about what this actually means in layman's terms.
"“It’s a bit hard to put this completely in layman’s terms because it’s a change to the kernel code in Windows. But here’s a shot:
FLS slots are how we manage small in-memory storage locations for what are called “Fibers”. Fibers are lightweight threads. Threads are bits of code that execute in parallel, sometimes on different processor cores. Almost everything done in parallel in a DAW is using either Fibers or Threads to allow that code to be run. How that is handled differs from DAW to DAW.
DAWs are a process that can load external code (plugins) that are contained in DLLs. DLLs (Dynamic Link Libraries) are compiled code that is packaged specifically to be loaded by other processes. DLLs are the main way code is shared on Windows.
Most VST plugins for Windows are compiled using a version of Visual C++. Visual C++ has a runtime library full of functions that are used by anything compiled with it. That runtime library allocates (depending upon version) one or two FLS slots per instance of the library loaded in a process.
Now, for convenience and ease of installation, most plug-in authors statically link that runtime. That means that the runtime code is included inside the plugin DLL, instead of referenced from another DLL. So, if you have 50 different unique plugins loaded in the DAW, and each plugin statically links the runtime, there will be 50 copies of that runtime code loaded into the DAW process. Each copy of that runtime code will allocate one or two FLS slots, so you can end up with between 50 and 100 FLS slots used just by the runtime.
If the plugin dynamically links the runtime (that is, the plugin references a runtime DLL that is installed with the plugin, or is already present on the system), only as many copies of the runtime will be loaded in the DAW process as there are unique versions of that runtime. So, if there are 50 plugins in the process, but collectively they use, say, 5 unique versions of the runtime, there will be only 5 copies of that code loaded into memory. This is obviously better for memory usage, but also better because there will only be between 5 and 10 FLS slots used."
If your interest in the nuts and bolts of Windows doesn't quite stretch to that level of detail, he also added:
"Developers don’t need to do anything, but end users will no longer have their DAW plugin count capped by this limitation. The new count means that, today, users will run out of memory and processor time before they run out of FLS slots. But we’ve made it much easier for us to change in the future if/when we need to make it more than 4000.
The limitation goes back to the Vista and XP timeframe. The reason folks are running into it now, is PCs have gotten so powerful, that musicians are hitting this limit where before they would simply run out of memory or CPU.”
So there you have it - you don't have to do anything except install the update to Windows 10 when it gets released, and you should find that any issues you'd had trying to load very large numbers of effects and instruments is magically solved. Thanks, Microsoft!