The Virtual Machine Memory
controls the maximum amount of memory available to the Java Virtual
Machine (JVM) that is used by IDA-STEP. The setting depends of the
kind
of operating system (Windows or Linux), the inner architecture
(32 or 64 bit), the installed physical memory (e.g. 2 GByte)
and
other installed software packages. No fixed rule can be given
about the maximum memory settings.
Figure 1. Virtual Machine
Memory page
We have to distinguish between the current
maximum size and the possible
maximum
size. The current maximum size is displayed in
this dialogue and it is less or equal to the possible maximum
size. But as explained above the possible maximum size is not
know and thus can't be displayed.
The actual memory consumed and allocated by the JVM is displayed in
the
small Heap Status control
in
the status bar (see Figure 2).
The
lower number is the amount of memory actual in use by the JVM and
the
upper number the amount of memory currently allocated from the
operating system. The upper number is always smaller or equal to the
current maximum size. The actual number of memory in use is
dynamically
growing and shrinking. It can be reduced when pressing the so called
Garbage Collection button
(waste bin
symbol).
See General preferences on
how
to switch the Heap Status
control on and off.
Figure 2. Heap status
with
actual used and allocated memory
Example: Under Windows 32bit the maximum physical memory that can be
managed by the operating system is about 3 GB. If you have installed
more memory Windows can't take advantage of it. If you now try to
set
the maximum memory setting to e.g. 2.5 GB the JVM will not allow you
to
do so because a significant portion of the memory is reserved for
the
operating system. A typical maximum value under 32 Windows is 1.6 GB
(or 1600 megabytes). But if IDA-STEP would allocate this whole
amount
of memory then other applications running in parallel would decrease
in
performance because windows has to swap in and out the applications
between the hard disk and physical memory. If you need more memory
than
is available under 32 bit we recommend to switch to a 64 bit
operating
system with at least 6 GB.
Any change of the maximum size will only become effective after
re-starting of IDA-STEP. The fields are (see Figure 1):
Current maximum size as
reported by JVM - the text field displays the
actual max.
memory available to the currently running JVM.
New maximum size (will
take
effect after restart) - the new maximum value to be
used the
next time IDA-STEP is started anew.
Note that the initial values of current
maximum
size and new maximum
size are often not identical, even after re-start. This is
because the value the JVM is asking for and what it get by the
system may differ.
When entering new values for new
maximum size IDA-STEP is dynamically checking with the
operating
system and if the value is not accepted by the system it will
indicate
this by the message "Invalid maximum memory value".
The "new maximum size" value will be stored in the file
ida-step.ini that you can find in the directory where IDA-STEP
is
installed. The line of interest looks like this
-Xmx1500m
for a new maximum size of 1500 megabytes. Dependent of your kind
of installation this directory may be write protected. In this
case when you try to change the new maximum size you will see
an
error message like this:
Figure 3. Save Preferences
dialogue window in failure case
If you see this message you have to change this entry manually
with some editor in protected mode.