Select the Performance button in the Preferences tool to open the Performance preferences. If you have experienced an “out of memory error,” please scroll down to “Memory Management,” below.
GUI (Java) Threads
This integer tells FlowJo how many threads the Graphical User Interface should open at the start of the program. This preference requires that the program is restarted in order to be updated. We recommend the default setting, calculated by FlowJo based on your computer’s resourses. Most notable result of this preference will be in layout editor batching.
Engine (C++) Threads
FlowJo’s Engine handles all reading and writing of FCS data, and performs all calculations and manipulations of the data while in memory. The default setting is (number of processors +1), you may wish to increase this number or launch more Engines (via the Dispatcher preference.)
Use Engine Dispatcher
If on, this will load the ‘EXE’ version of the engine. The number of EXE engines can be user specified in the ‘Local Engines to use’ setting. We recommend using the engine dispatcher on computers with 4 or more CPU’s. We also recommend using the engine dispatcher on computers with 2 or more GB of RAM. Each ‘EXE’ engine is its own user-process. Therfore it has its own pool of RAM (1.7GB per engine max, we don’t recommend filling them beyond 1GB for stability.) More…
Multiple engines communicate over “ports.” FlowJo begins by using port 12345. In the unlikely event of port conflict, change this number.
Number of Local Engines
This setting controls how many ‘EXE’ engines are dispatched. We recommend setting this to either (number of processors +1) for best processor utilization, or (number of GB of RAM) for best RAM utilization.
Stop Distributed Engines on Exit
Toggles whether Distributed Engines stop on exit
Max Sample Cache Data size (Mb)
This setting controls how many FCS files each Engine should remember. As you increase the number of Engines or Threads per Engine, it’s good to lower this. Default = 100. Recommended value = (your computer’s free RAM in GB/size of your FCS data x2 in GB). Please note, free RAM is the free physical RAM remaining after you open FlowJo, not how many GB are installed total.
I/O Buffer size (Bytes)
This is how much data an Engine will read at each cycle. For faster computers / faster hard drives, feel free to increase this setting if increasing the number if engines does not help.
Memory Management in FlowJo
If you have encountered an “out of memory” error or you would like to increase the performance of FlowJo, it is important first to understand that there are two memory pools in FlowJo: (1) client and (2) engine.
The client, which is best thought of as the graphical user interface used to display data, analysis results, and make calculation requests to the engine, holds on to figures and other representations of samples. The Engine holds on to samples so that it may quickly have access to sample data for its calculations. Before treating “memory” problems, we recommend that determine which type of memory issue needs addressing, while realizing it could be “both”.
- Engine memory issues manifest as “disk shredding” but a (reasonably) responsive client/user interface.
- Client memory issues manifest in a “FlowJo has ran out of memory” dialog.
The approach to treating memory problems depend on the situation:
- A note about 32-bit machines: Memory management in 32 bit machines ships “maximized” and there is no way to “increase” it. (Please see this FAQ from Microsoft for how to determine your bit-ness.)
- To increase engine memory, go to the Performance tab in preferences (shown above). This sets the tone for how the engine uses the available memory of your computer. Our recommendation is that (1) you close out other programs in use and (2) you set your Max Sample Cache Data size to as high as possible, so that the engine can store as much sample data as possible for quick access. To determine your available RAM, please see these instructions for Mac or PC. (Note that FlowJo needs to be restarted when these settings are changed.)
For Client memory increases, we reccomend that you edit the file used at FlowJo’s startup:
- Macintosh / OSX: right-click on FlowJo, select “view package contents”, and edit the file “info.plist”. You are looking for the element <key>VMOptions</key>. The default maximum allowed memory is 32GB.
- Windows 64 bit: Edit the file “FlowJo_V10.lax” for interactive FlowJo (using the graphical user interface) or “FlowJo_V10_CL.lax” for command line. These lax files may be found in FlowJo’s installation directory. Within this file, look for “lax.nl.java.option.java.heap.size.max=” and change the number following the equals sign. The number should be an integer and is in units of bytes. 4GB = 4000000000 = default. Note that you need administrator privileges to perform this edit.
At present, there is only one known issue that reproducibly over-consumes memory, which is batching a large number of NxN plots. Should you encounter an error that is not addressed by the recommendations above or you would like help with memory management, please send us an email – email@example.com.