Overview:
Java Virtual Machine memory allocation
The Trader Workstation is a Java-based application. As any other Java applications, it executes within a Java virtual machine (JVM) which manages the interactions between the program and the underlying Operating System (OS).
The memory (RAM) which is allocated by the operating system to the JVM constitutes the heap space. That is the area where all the class instances and arrays needed by the application are allocated. The heap space is created when the JVM is started and it is dynamically freed-up by the Garbage Collector (GC), the Java memory manager. When the need arises, the Garbage Collector is invoked to free up the heap space by unloading Java classes and other code structures no longer used by the application.
If the heap space is undersized, the Garbage Collector may not be able reclaim memory at the needed pace or may have to be called too often, draining the processor (CPU) resources. When this happens, the application may slow down, be unresponsive or even crash completely.
To ensure a smooth TWS run, it is therefore sometimes necessary to change the memory allocation, according to the layout complexity and the needs of the application itself.
Background:
In which case I should change the TWS memory allocation?
If your TWS layout contains a considerable number of elements (Analytical/Trading Tools, Chart windows, News panels, Watchlists, Layout tabs...) and your platform is slow or poorly responsive, you may want to increase the memory allocation in order to achieve better performances. If your TWS freezes or crashes, we also recommend increasing the heap space as the first corrective action to attempt.
How much memory should I allocate to TWS?
In general we recommend to start with a conservative memory allocation and test the TWS performances with that set up. If the performances improvement is less noticeable then expected or not yet satisfactory, you can switch gradually to higher values until you find the best fit for your platform.
Please consider the following:
- The memory you allocate to the TWS has to be available on your system. For details, please see Note 1. Allocation values above 2048 are not supported by 32-bit OS. For details, please see Note 2.
Considering the above, we suggest to initially reserve 1.5 GB of system RAM the TWS, as explained in the guide below.
This amount of free memory is usually available on any modern computer and should be a good fit for most of the cases. Should you still notice slowness, freezing or crashes during the TWS execution, you can raise the value to 1792.
In any case, we do not recommend to set the value above 2048 since this will produce an unnecessary overhead and may thus even decrease the overall performances of the application.
How can I change the memory allocation for the TWS?
Please follow one of the links below for the instructions, according to the Operating System and TWS release you are using
Any Operating System
B.1 Your Operating System is
Windows
B.2 Your Operating System is
Mac OS
A. TWS version 972 and higher
The steps below are valid for all Operating Systems
1) In the TWS, click on the top menu File (or Edit if you are using Classic TWS) and select Global Configuration...
2) On the left side menu of the Global Configuration panel, click on General
3) In the panel on the right side, in the
Memory Allocation field, replace the existing value with
1536
4) Click on Apply and then on OK
5) Shut down the TWS
6) Launch the TWS with a double click on the Desktop shortcut
Trader Workstation (Should you receive an error message, please see
Note 3.
Back to top
B. TWS versions previous to 972
B.1 Your Operating System is Windows
1) Close TWS in case it is running
2) On your keyboard, press WIN+R (the WIN key is the key with the windows flag located on the left side of tour keyboard, between the keys CTRL and ALT)
3) Type C:\Jts\tws.vmoptions and Click OK
4) Should the system ask you which program to use to open the file, select
Notepad and click
OK
5) Cut the line
-Xmx768m and paste it
below the line
### Keep on update
6) Change then the value of the parameter Xmx from 768 to 1536
7) Save the changes by clicking on the top menu
File --> Save
8) Close the file clicking on the
X icon on the right side of the toolbar
9) Launch the TWS with a double click on the Desktop shortcut
Trader Workstation (Should you receive an error message, please see
Note 3.
Back to top
B.2 Your Operating System is Mac OS
1) Close the TWS if it is running
2) Use the Spotlight search (the magnifier glass on the top right of your Desktop) to find the file tws.vmoptions
Normally the file is located within the Jts folder (a subfolder of your home folder)
3) On the Spotlight results panel, click on tws.vmoptions to open it. Should the system ask you how to open this file, click Choose Application... select a text editor (TextEdit, Smultron, TextWrangler...) of your choice and click Open
4) Locate the line -Xmx768m. Cut it and paste it below the line ### Keep on update
6) Modify the value 768 in to 1536
7) Save and close the file
8) Launch the TWS with a double click on the Desktop shortcut
Trader Workstation (Should you receive an error message, please see
Note 3.
Back to top
Notes
1. Available system RAM
In order to check the amount of available system RAM on your computer, you can:
- on Windows: use the key combination CTRL+SHIFT+ESC to start the Task Manager, click on the tab Performance and look for the "Available" Physical Memory. This will tell you the amount of unoccupied RAM in MB (1024 MB = 1GB)
- on Mac OS: Open Finder, go to Application --> Utilities and open Terminal. In the terminal type the command:
sudo purge
and press Enter. The system may ask you to enter your Mac user password. Enter the password. Once the command has completed, type the following command:
top -l 1| grep PhysMem
The "unused" value will tell you the amount of unoccupied RAM in MB (1024M = 1GB)
2. Limitations of 32-bit Operating Systems
Please notice that 32-bit Operating Systems can normally only address a maximum of 2 GB of RAM per process (see table below for details). Because of this OS architecture limitation, if you have a 32-bit OS, the maximum memory allocation for the TWS must not exceed 2048 Mb.
3. Error: "Could not create the Java Virtual Machine"
This error may be displayed upon TWS startup if you set the memory allocation to a value higher than the available RAM of your system or if you set it higher than 2048 on a 32-bit Opertaing System. To overcome the error, you would need to decrease the memory allocation to a lower value using
this procedure
Back to top