Difference between revisions of "Setting Heap Size"

From Protege Wiki
Jump to: navigation, search
(added screenshot)
Line 1: Line 1:
<span style="font-weight:bold;font-size:18px;">Setting Heap Size</span>
+
<span style="font-weight:bold;font-size:18px;">Setting the Heap Size</span>
 +
 
 +
 
 +
<span style="font-weight:bold;font-size:16px;">Recommendations for setting the heap size (read first!)</span>
 +
 
 +
The maximum amount of memory that a Java VM can use is 1.6 GB on Windows XP and 2 GB on most Unix machines.
 +
 
 +
You must be careful about setting the heap size parameter. If you set it too low then you will get "out of memory" errors. If you set it too high then your system will hang or you will suffer poor performance because parts of the jvm will be swapped in and out of memory. A rule of thumb is that you should not set this parameter larger than about 80% of your free physical memory. On Windows XP machines you can determine your free physical memory from the Performance tab of the Task Manager application. On Mac machines, click the apple (upper left hand corner and "about this mac"). On Linux machines, you can use the wonderful proc filesystem and look at the meminfo "file".
 +
 
 +
Boosting the heap size parameter will allow you to read in larger file-based projects. It will also improve the performance of the database back-end since more memory is available for caching.
 +
 
 +
The most common source of very slow performance on older systems (or laptops) is having the heap size set too large. If your system does not have 100MB of free memory then even the Protege default value is too big and you should make it smaller (or buy more memory).
 +
 
  
 
There are several ways of setting the heap size depending on how you run Protege.
 
There are several ways of setting the heap size depending on how you run Protege.
  
 +
__TOC__
  
  

Revision as of 12:13, February 13, 2008

Setting the Heap Size


Recommendations for setting the heap size (read first!)

The maximum amount of memory that a Java VM can use is 1.6 GB on Windows XP and 2 GB on most Unix machines.

You must be careful about setting the heap size parameter. If you set it too low then you will get "out of memory" errors. If you set it too high then your system will hang or you will suffer poor performance because parts of the jvm will be swapped in and out of memory. A rule of thumb is that you should not set this parameter larger than about 80% of your free physical memory. On Windows XP machines you can determine your free physical memory from the Performance tab of the Task Manager application. On Mac machines, click the apple (upper left hand corner and "about this mac"). On Linux machines, you can use the wonderful proc filesystem and look at the meminfo "file".

Boosting the heap size parameter will allow you to read in larger file-based projects. It will also improve the performance of the database back-end since more memory is available for caching.

The most common source of very slow performance on older systems (or laptops) is having the heap size set too large. If your system does not have 100MB of free memory then even the Protege default value is too big and you should make it smaller (or buy more memory).


There are several ways of setting the heap size depending on how you run Protege.


Start Protege by Protege.exe/Protege or by double-cliking on the Protege icon (Windows/Linux)

If you start Protege on a Windows/Linux machine by double clicking on the Protege.exe/Protege or the Protege icon, you need to update the Protege.lax file.

You can do this in the Protege UI, in the File -> Preferences menu -> Protege.lax file. Update the second column of the row containing lax.nl.java.option.java.heap.size.max. Click on OK. Please note that the changes take effect the next time you start Protege. Below is a screenshot of the Protege.lax panel.


Preferences-protege.lax.png


Alternatively, you can also edit directly the Protege.lax file in a text editor. Edit the following line in the Protege.lax file in the Protege installation directory: lax.nl.java.option.java.heap.size.max=100000000. By default the Protege.lax file specifies a heap of 100MB.


Start Protege by double-clicking on the Protege icon (Mac)

If you run Protege on a Mac by double clicking an icon, you need to edit the Info.plist file that is hidden within that icon. Right click the icon (or ^-click for one button mouses) and click "show package contents". A new finder window will come up. Double click "Contents" and then "Info.plist". Traverse down the tree as follows: "Root" --> "Java" --> "VMOptions". In VMOptions edit the -Xmx line to indicate the correct memory usage.


Start Protege by double-clicking on the applescript file (Mac)

If you run Protege on a Mac by double clicking the applescript file then you need to modify the -Xmx line in the script.


Start Protege from the command line

If you run Protege from the java command line then you need to pass in the heap size with the -Xmx command line switch. Example, if you want to run Protege with 500 MB of heap size, you would specify:

-Xmx500M