|
5.1.81 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)/1023), "KByte)" +newline+
"Memory currently allocated from system:",memory(1), "Byte (",
int(memory(1)/1023), "KByte)";
"Maximal memory allocated from system :",memory(2), "Byte (",
int(memory(2)/1023), "KByte)";
}
ReportMemoryUsage();
==> Memory currently used by SINGULAR : 234460 Byte ( 229 KByte)
==> Memory currently allocated from system: 2809856 Byte ( 2746 KByte)
==> Maximal memory allocated from system : 2809856 Byte ( 2746 KByte)
kill p;
ReportMemoryUsage(); // less memory used: p killed
==> Memory currently used by SINGULAR : 181220 Byte ( 177 KByte)
==> Memory currently allocated from system: 2809856 Byte ( 2746 KByte)
==> Maximal memory allocated from system : 2809856 Byte ( 2746 KByte)
kill r;
ReportMemoryUsage(); // even less memory: r killed
==> Memory currently used by SINGULAR : 170572 Byte ( 166 KByte)
==> Memory currently allocated from system: 2805760 Byte ( 2742 KByte)
==> Maximal memory allocated from system : 2809856 Byte ( 2746 KByte)
|
See
option;
system.
|