Иллюстрированный самоучитель по Mathematica 3/4

Уплотнение памяти (MemoryConserve). Работа с пакетами расширений (Package).

Подпакет MemoryConserve в дополнение к имеющейся в ядре функции освобождения памяти Share [ ] содержит две директивы управления памятью:

  • On [MemoryConserve] – включает автоматическое сжатие занимаемой системой памяти;
  • Off [MemoryConserve] – отключает автоматическое сжатие памяти.

Ниже демонстрируется применение этого подпакета:

<<Utilities 'MemoryConserve' $MemoryIncrement
100000
Table[ ToString[0], {2^15} ];
Length[ % ]
MemoryConserve::start: Running Share[] to conserve memory.
 MemoryConserve::end: Finished running Share[];
929200 bytes of memory freed.
32768
Off[ MemoryConserve ]
On[ MemoryConserve ]

Данная утилита полезна лишь при использовании системы Mathematica на компьютерах с малым объемом оперативной памяти.

Работа с пакетами расширений (Package)

В подпакете Package имеется несколько функций, полезных при работе с пакетами расширения:

  • FindPackages [path] – возвращает список файлов с расширением .m, имеющихся в каталоге path. Опция FullPath › True дает возврат полных (вместе с путем) имен файлов;
  • FindPackages [path, pattern] – возвращает список файлов с расширением .m, имеющихся в каталоге path и удовлетворяющих заданному образцу pattern;
  • Annotation [package] – возвращает список ключевых слов, содержащихся в аннотации пакета;
  • Annotation [package, keyword] – возвращает текст аннотации пакета, связанной с ключевым словом keyword.

Примеры работы с этими функциями:

<< Utilities'Package'
  
FindPackages[$Path, "*ca"]
{{}, {}, {}, {DiscreteMath'Combinatorica'}, {}}
  
FindPackages[$Path, "*ca",
FullPath > True]
{{},(},{},
{/usr/local/mathematica/AddOns/StandardPackages/ DiscreteMath/Combinatorica.m}, {}}
  
Annotation["Utilities'Package'"]
{Title, Context, Author, Summary, Package Version, Mathematica Version,
 Copyright, History, Keywords, Limitations, Discussion}
  
Annotation["Utilities'Package'", "Mathematica Version"]
{(*:Mathematica Version: 4.0 *)}
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.