Chapter 18: Memory and Variable Management
341
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
ERR: 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 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