Home Online Manual
Top
Back: maxideal
Forward: min
FastBack: Functions and system variables
FastForward: Control structures
Up: Functions
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

5.1.87 memory

Syntax:
memory ( int_expression )
Type:
bigint
Purpose:
returns statistics concerning the memory management:
  • memory(0) is the number of active (used) bytes,
  • memory(1) is the number of bytes allocated from the operating system,
  • memory(2) is the maximal number of bytes ever allocated from the operating system during the current SINGULAR session.
Note:
To monitor the memory usage during ongoing computations the option mem should be set (using the command option(mem);, see also option).
Example:
 
  ring r=0,(x(1..500)),dp;
  poly p=(x(1)+x(500))^50;
  proc ReportMemoryUsage()
  {  "Memory currently used by SINGULAR     :",memory(0),"Byte (",
     int(memory(0) div 1024), "KByte)" +newline+
     "Memory currently allocated from system:",memory(1), "Byte (",
     int(memory(1) div 1024), "KByte)";
     "Maximal memory allocated from system  :",memory(2), "Byte (",
     int(memory(2) div 1024), "KByte)";
  }
  ReportMemoryUsage();
==> Memory currently used by SINGULAR     : 153408 Byte ( 149 KByte)
==> Memory currently allocated from system: 2228224 Byte ( 2176 KByte)
==> Maximal memory allocated from system  : 2232320 Byte ( 2180 KByte)
  kill p;
  ReportMemoryUsage(); // less memory used: p killed
==> Memory currently used by SINGULAR     : 82848 Byte ( 81 KByte)
==> Memory currently allocated from system: 2228224 Byte ( 2176 KByte)
==> Maximal memory allocated from system  : 2232320 Byte ( 2180 KByte)
  kill r;
  ReportMemoryUsage(); // even less memory: r killed
==> Memory currently used by SINGULAR     : 70648 Byte ( 69 KByte)
==> Memory currently allocated from system: 2228224 Byte ( 2176 KByte)
==> Maximal memory allocated from system  : 2232320 Byte ( 2180 KByte)
See option; system.