Configuring JVM options and platform properties
Besides the standard options available in the Settings/Preferences dialog (Ctrl+Alt+S), GoLand enables you to perform low-level configuration of the underlying platform and the Java runtime.
Configuring JVM options
GoLand runs on the Java Virtual Machine (JVM), which has various options that control its performance. The default options used to run GoLand are specified in the following file:
<IDE_HOME>\bin\goland64.exe.vmoptions (for the default 64-bit JVM)
<IDE_HOME>\bin\goland.exe.vmoptions (for optional 32-bit JVM)
GoLand.app/Contents/bin/goland.vmoptions
<IDE_HOME>/bin/goland64.vmoptions (for the default 64-bit JVM)
<IDE_HOME>/bin/goland.vmoptions (for optional 32-bit JVM)
To configure JVM options:
On the Help menu, click Edit Custom VM Options.
-
On the Welcome screen, click Configure and then Edit Custom VM Options.
-
If you cannot start GoLand, you can manually copy the default file with JVM options to the GoLand configuration directory.
GoLand creates a copy of the file with JVM options in the configuration directory and opens it in a new editor tab. Any values that you change in this file will override the values from the original default file.
If you do not have write access to the GoLand configuration directory, you can add the GOLAND_VM_OPTIONS
environment variable to specify the location of the file with JVM options. The values in this file will override the corresponding values from both the original default file and the copy located in the GoLand configuration directory.
Common options
The default values of the JVM options should be optimal in most cases. The following are the most commonly modified ones:
Option | Description |
---|---|
-Xmx | Limits the maximum memory heap size that the JVM can allocate for running GoLand. Default value depends on the platform. If you are experiencing slowdowns, you may want to increase this value, for example, to set the value to 2048 megabytes, change this option to |
-Xms | Specifies the initial memory allocated by the JVM for running GoLand. Default value depends on the platform. It is usually set to about half of the maximum allowed memory (-Xmx), for example, |
-XX:NewRatio | Specifies the ratio between the size of the young and old generation of the heap. In most cases, a ratio between 2 and 4 is recommended. This will set the size of the young generation to be 1/2 to 1/4 of the old generation correspondingly, which is good when you are often working on one project and only a few files at a time. However, if you are constantly opening new files and switching between several projects, you may need to increase the young generation. In this case, try setting |
For more information about available JVM options, see the java
reference for Windows or macOS/Linux.
Configuring platform properties
GoLand enables you to customize various platform-specific properties, such as the path to user-installed plugins and the maximum supported file size. The default properties used to run GoLand are specified in the following file:
<IDE_HOME>\bin\idea.properties
GoLand.app/Contents/bin/idea.properties
<IDE_HOME>/bin/idea.properties
To configure platform properties:
-
From the
menu, select . -
On the Welcome screen, click Configure and then select Edit Custom Properties.
-
If you cannot start GoLand, you can manually create an empty idea.properties file in the GoLand configuration directory.
GoLand creates an empty idea.properties file in the configuration directory and opens it in a new editor tab. Any properties that you add to this file will override the corresponding properties in the original default file.
If you do not have write access to the GoLand configuration directory, you can add the GOLAND_PROPERTIES
environment variable to specify the location of the idea.properties file. The properties in this file will override the corresponding properties in both the original default file and the one located in the GoLand configuration directory.
Common properties
The following properties are commonly changed by users solving specific issues:
-
Location of the default IDE directories may need to be moved, for example, if the user profile drive runs out of space or is located on a slow disk, if the home directory is encrypted (slowing down the IDE) or located on a network drive, if you want to create a portable installation or exclude caches from home directory backups, and so on.
You can use macros with any property name to insert its value, for example, use
${user.home}
(standard Java system property) to specify paths relative to the user's home directory.Property
Path to
idea.config.path
Configuration directory idea.system.path
System directory idea.plugins.path
Plugins directory idea.log.path
Logs directory -
Limits that can affect performance:
Property
Description
idea.max.content.load.filesize
Maximum size of files (in kilobytes) that GoLand is able to open. Working with large files can affect editor performance and increase memory consumption. The default value is
20000
.idea.max.intellisense.filesize
Maximum size of files (in kilobytes) for which GoLand provides coding assistance. Coding assistance for large files can affect editor performance and increase memory consumption. The default value is
2500
.idea.cycle.buffer
Maximum size of the console cyclic buffer (in kilobytes). If the console output size exceeds this value, the oldest lines are deleted. To disable the cyclic buffer, set
idea.cycle.buffer.size=disabled
.idea.max.vcs.loaded.size.kb
Maximum size (in kilobytes) that GoLand loads for showing past file contents when comparing changes. The default value is
20480
.
GoLand provides a number of other properties that define interaction with the environment (window managers, launchers, file system, and so on). Most of them are like hidden settings (in the sense that they are not evidently exposed), which may need to be enabled or disabled in certain cases. It is strongly recommended to change these properties only after contacting JetBrains Support for assistance.
Default IDE directories
By default, GoLand stores user-specific files (configuration, caches, plugins, logs, and so on) in the user's home directory. However, you can change the location for storing those files, if necessary.
Configuration directory
The GoLand configuration directory contains XML files with personal settings, such as keymaps, color schemes, and so on. It is also the default location for user-defined VM options and platform properties files.
- Syntax
- %HOMEPATH%\.<product><version>\config
- Example
- C:\Users\JohnS\.%ide_system_dir%2019.2\config
- Syntax
- ~/Library/Preferences/<product><version>
- Example
- ~/Library/Preferences/%ide_system_dir%2019.2
- Syntax
- ~/.<product><version>/config
- Example
- ~/.%ide_system_dir%2019.2/config
You can change the location of the GoLand configuration directory using the idea.config.path property.
You can share your personal IDE settings by copying the files from the configuration directory to corresponding folders on another GoLand installation. Make sure that GoLand is not running to avoid erasing the copied files when you shut down the IDE. The following table lists subfolders in the GoLand configuration directory and corresponding settings that are contained in them.
Directory | User settings |
---|---|
codestyles | Code style schemes |
colors | Customized editor color and font schemes |
fileTemplates | User-defined file templates which pertain to the entire GoLand workspace |
filetypes | User-defined file types |
inspection | Code inspection profiles |
keymaps | Customized keyboard shortcuts |
options | Various options, for example, feature usage statistics and macros |
scratches | Scratch files and buffers |
templates | User-defined live templates |
tools | Configuration files for user-defined external tools |
shelf | Shelved changes |
System directory
The GoLand system directory contains caches and local history files.
- Syntax
- %HOMEPATH%\.<product><version>\system
- Example
- C:\Users\JohnS\.%ide_system_dir%2019.2\system
- Syntax
- ~/Library/Caches/<product><version>
- Example
- ~/Library/Caches/%ide_system_dir%2019.2
- Syntax
- ~/.<product><version>/system
- Example
- ~/.%ide_system_dir%2019.2/system
You can change the location of the GoLand system directory using the idea.system.path property.
Plugins directory
The GoLand plugins directory contains user-installed plugins.
- Syntax
- %HOMEPATH%\.<product><version>\config\plugins
- Example
- C:\Users\JohnS\.%ide_system_dir%2019.2\config\plugins
- Syntax
- ~/Library/Application Support/<product><version>
- Example
- ~/Library/Application Support/%ide_system_dir%2019.2
- Syntax
- ~/.<product><version>/config/plugins
- Example
- ~/.%ide_system_dir%2019.2/config/plugins
You can change the location of the GoLand plugins directory using the idea.plugins.path property.
Logs directory
The GoLand logs directory contains product logs and thread dumps.
- Syntax
- %HOMEPATH%\.<product><version>\system\log
- Example
- C:\Users\JohnS\.%ide_system_dir%2019.2\system\log
- Syntax
- ~/Library/Logs/<product><version>
- Example
- ~/Library/Logs/%ide_system_dir%2019.2
- Syntax
- ~/.<product><version>/system/log
- Example
- ~/.%ide_system_dir%2019.2/system/log
You can change the location of the GoLand logs directory using the idea.log.path property.