|
|
5.1.89 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 : 127664 Byte ( 124 KByte)
==> Memory currently allocated from system: 2220032 Byte ( 2168 KByte)
==> Maximal memory allocated from system : 2256896 Byte ( 2204 KByte)
kill p;
ReportMemoryUsage(); // less memory used: p killed
==> Memory currently used by SINGULAR : 74424 Byte ( 72 KByte)
==> Memory currently allocated from system: 2220032 Byte ( 2168 KByte)
==> Maximal memory allocated from system : 2256896 Byte ( 2204 KByte)
kill r;
ReportMemoryUsage(); // even less memory: r killed
==> Memory currently used by SINGULAR : 64024 Byte ( 62 KByte)
==> Memory currently allocated from system: 2215936 Byte ( 2164 KByte)
==> Maximal memory allocated from system : 2256896 Byte ( 2204 KByte)
|
See
option;
system.
|