Operation Manual

Chapter 18: Memory and Variable Management 337
Each variable that you archive is stored in the first empty block large enough to hold it.
This process continues to the end of the last sector. Depending on the size of individual variables, the
empty blocks may account for a significant amount of space. Garbage collection occurs when the
variable you are archiving is larger than any empty block.
How Unarchiving a Variable Affects the Process
When you unarchive a variable, it is copied to RAM but it is not actually deleted from user data archive
memory. Unarchived variables are “marked for deletion,” meaning they will be deleted during the next
garbage collection.
If the MEMORY Screen Shows Enough Free Space
Even if the MEMORY screen shows enough free space to archive a variable or store an application, you
may still get a Garbage Collect? message or an ERROR: ARCHIVE FULL message.
When you unarchive a variable, the
Archive free amount increases immediately, but the space is not
actually available until after the next garbage collection.
If the
Archive free amount shows enough available space for your variable, there probably will be
enough space to archive it after garbage collection (depending on the usability of any empty blocks).
The Garbage Collection Process
The garbage collection process:
variable B
variable C
variable A
variable D
Depending on its size,
variable D is stored in one
of these locations.
Sector 1
Sector 3
Sector 2
Empty
block
variable A
variable D
After you unarchive
variables B and C, they
continue to take up
space.
Sector 1
Sector 2
Sector 3
Deletes unarchived variables
from the user data archive.
Rearranges the remaining
variables into consecutive blocks.
variable A
variable D
Sector 1
Sector 2