While Mathematica is designed to manage memory for you, under certain circumstances it can get bogged down, mainly because it keeps a record of all your inputs and outputs with In and Out. So if you're using functions that output a lot of computation, or working with large files, you may notice Mathematica slowing down.
There are a number of ways that you can manage memory in Mathematica. Here is a summary (see also How to Find Memory Used in Computations).
If you're going to go as far as removing all Global Symbols, consider starting a new session by entering Quit[] in your Notebook or Quit Kernel → Local under the Evaluation menu.
Clear a cell that consumed lots of memory in your session:
Command
|
Effect
|
?Global`*
|
Shows all Symbols in a non-accessible table
|
Names@”Global`*”
|
Returns a List of all Symbols that you can access
|
Clear@symbol
|
Clears the value of symbol but leaves its name in memory
|
Clear@”Global`*”
|
Clears the values of all Symbols but leaves their names in memory
|
Remove@symbol
|
Removes the name symbol and its value from memory
|
Remove@”Global`*”
|
Removes all Symbols and their values from memory
|
Beginners hesitate to Quit the kernel, but there's little downside. Even if you haven't saved your Notebooks, the kernel is a separate entity and you can save them.
To automate resuming after quitting the kernel or in general, use Initialization Cells. You can set Initialization in the menu under Cell → Cell Properties or by right-clicking on the cell and selecting Initialization Cell. A little downward tick mark appears in the upper right corner of the cell.
Then when you re-start the kernel by selecting any cell, selecting Evaluation → Evaluate Initialization Cells, or re-open the Notebook, all the Initialization cells are automatically re-Evaluated. In this way you lose very little time by quitting the kernel and re-starting.
Memory currently used by the kernel:
Memory-Management Commands to Use Occasionally
Memory currently used by the kernel:
In[157]:= MemoryInUse[]
Out[157]= 135450976
Memory currently used by the front end (all of your open Notebooks):
In[158]:= MemoryInUse@$FrontEnd
Out[158]= 543264768
The maximum memory used by the kernel during your current Mathematica session:
In[159]:= MaxMemoryUsed[]
Out[159]= 137155304
Clear a cell that consumed lots of memory in your session:
Unprotect[Out]; Out[537] =.;
Protect@Out;
Protect@Out;
No comments:
Post a Comment