Mercurial > octave
annotate scripts/miscellaneous/memory.m @ 28373:29c655998ac3
memory.m: Add documentation (patch #9924).
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Sun, 24 May 2020 10:29:26 +0200 |
parents | 2f571bfff344 |
children | f6a8f103786e |
rev | line source |
---|---|
28372
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
1 ######################################################################## |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
2 ## |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
3 ## Copyright (C) 2020 The Octave Project Developers |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
4 ## |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
5 ## See the file COPYRIGHT.md in the top-level directory of this |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
6 ## distribution or <https://octave.org/copyright/>. |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
7 ## |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
8 ## This file is part of Octave. |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
9 ## |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
10 ## Octave is free software: you can redistribute it and/or modify it |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
11 ## under the terms of the GNU General Public License as published by |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
12 ## the Free Software Foundation, either version 3 of the License, or |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
13 ## (at your option) any later version. |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
14 ## |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
15 ## Octave is distributed in the hope that it will be useful, but |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
16 ## WITHOUT ANY WARRANTY; without even the implied warranty of |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
17 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
18 ## GNU General Public License for more details. |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
19 ## |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
20 ## You should have received a copy of the GNU General Public License |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
21 ## along with Octave; see the file COPYING. If not, see |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
22 ## <https://www.gnu.org/licenses/>. |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
23 ## |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
24 ######################################################################## |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
25 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
26 ## -*- texinfo -*- |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
27 ## @deftypefn {} {} memory () |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
28 ## @deftypefnx {} {[@var{userdata}, @var{systemdata}] =} memory () |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
29 ## Display or return information about memory usage by Octave. |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
30 ## |
28373
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
31 ## If the function is called without output arguments, a table with an overview |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
32 ## of the current memory consumption is displayed. |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
33 ## |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
34 ## The output argument @var{userdata} is a structure with the following fields |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
35 ## containing data for the Octave process: |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
36 ## @table @code |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
37 ## @item @var{MaxPossibleArrayBytes} |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
38 ## Maximum size for an array to be allocated. Be aware that this includes |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
39 ## @emph{all} physical memory and swap space. Allocating that amount of memory |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
40 ## might result in system instability, data corruption and/or file system |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
41 ## curruption. Note that dependend on the platform (32bit systems), the largest |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
42 ## contiguous memory block might further limit the maximum possible allocatable |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
43 ## array. This check is currently not implemented. |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
44 ## |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
45 ## @item @var{MemAvailableAllArrays} |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
46 ## The total size of available memory in bytes. |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
47 ## |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
48 ## @item @var{ram_available_all_arrays} |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
49 ## The maximum size for an array that can be allocated in physical memory |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
50 ## (excluding swap space). Note that dependend on the platform (32bit systems), |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
51 ## the largest contiguous memory block might further limit the maximum possible |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
52 ## allocatable array. This check is currently not implemented. |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
53 ## |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
54 ## @item @var{MemUsedMATLAB} |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
55 ## @itemx @var{mem_used_octave} |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
56 ## The memory (including swap space) currently used by Octave in bytes. |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
57 ## |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
58 ## @item @var{ram_used_octave} |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
59 ## The physical memory (excluding swap space) currently used by Octave in bytes. |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
60 ## |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
61 ## @end table |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
62 ## |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
63 ## The output argument @var{systemdata} is a nested structure with the following |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
64 ## fields containing information about the system's memory: |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
65 ## @table @code |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
66 ## @item @var{PhysicalMemory.Available} |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
67 ## The currently available pyhsical memory in bytes. |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
68 ## |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
69 ## @item @var{PhysicalMemory.Total} |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
70 ## The total pyhsical memory in bytes. |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
71 ## |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
72 ## @item @var{SystemMemory.Available} |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
73 ## The currently available memory (including swap space) in bytes. |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
74 ## |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
75 ## @item @var{SystemMemory.Total} |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
76 ## The total memory (including swap space) in bytes. |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
77 ## |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
78 ## @item @var{VirtualAddressSpace.Available} |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
79 ## The currently available virtual address space in bytes. |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
80 ## |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
81 ## @item @var{VirtualAddressSpace.Total} |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
82 ## The total virtual address space in bytes. |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
83 ## |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
84 ## @end table |
29c655998ac3
memory.m: Add documentation (patch #9924).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28372
diff
changeset
|
85 ## |
28372
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
86 ## @example |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
87 ## @group |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
88 ## memory () |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
89 ## @result{} System RAM: 3934008 KiB, swap: 4087804 KiB |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
90 ## Octave RAM: 170596 KiB, virt: 1347944 KiB |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
91 ## Free RAM: 1954940 KiB, swap: 4087804 KiB |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
92 ## Available RAM: 2451948 KiB, total: 6042744 KiB |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
93 ## @end group |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
94 ## |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
95 ## @group |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
96 ## [userdata, systemdata] = memory () |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
97 ## @result{} userdata = |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
98 ## scalar structure containing the fields: |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
99 ## MaxPossibleArrayBytes = 6.1622e+09 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
100 ## MemAvailableAllArrays = 6.1622e+09 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
101 ## ram_available_all_arrays = 2.4883e+09 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
102 ## MemUsedMATLAB = 1.3825e+09 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
103 ## mem_used_octave = 1.3825e+09 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
104 ## ram_used_octave = 1.7824e+08 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
105 ## |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
106 ## systemdata = |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
107 ## scalar structure containing the fields: |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
108 ## PhysicalMemory = |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
109 ## scalar structure containing the fields: |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
110 ## Available = 2.4954e+09 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
111 ## Total = 4.0284e+09 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
112 ## SystemMemory = |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
113 ## scalar structure containing the fields: |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
114 ## Available = 6.6813e+09 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
115 ## Total = 8.2143e+09 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
116 ## VirtualAddressSpace = |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
117 ## scalar structure containing the fields: |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
118 ## Available = 2.8147e+14 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
119 ## Total = 2.8147e+14 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
120 ## @end group |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
121 ## @end example |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
122 ## |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
123 ## This function is implemented for Linux and Windows only. |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
124 ## |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
125 ## @seealso{computer, getpid, getrusage, nproc, uname} |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
126 ## @end deftypefn |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
127 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
128 function [userdata, systemdata] = memory () |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
129 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
130 if (! isunix () && ! ispc ()) |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
131 if (nargout > 0) |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
132 error ('memory: function not yet implemented for this architecture'); |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
133 else |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
134 warning ('memory: function not yet implemented for this architecture'); |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
135 endif |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
136 return; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
137 endif |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
138 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
139 kiB = 1024; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
140 [architecture, bits] = computer (); |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
141 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
142 if (isunix ()) |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
143 ## Read values from pseudofiles |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
144 [status, meminfo] = lmemory (); |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
145 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
146 ## FIXME: Query the actual size of the user address space, |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
147 ## e.g. with getrlimit (RLIMIT_AS, rlp) |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
148 if (log2 (bits) > 32) |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
149 ## 64bit platform |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
150 address_space = 2^48; # 256 TiB |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
151 else |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
152 ## 32bit platform |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
153 address_space = 3 * 2^30; # 3 GiB |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
154 endif |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
155 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
156 total_ram = meminfo.MemTotal * kiB; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
157 total_swap = meminfo.SwapTotal * kiB; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
158 free_ram = meminfo.MemFree * kiB; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
159 if isfield (meminfo, "MemAvailable") |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
160 available_ram = meminfo.MemAvailable * kiB; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
161 else |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
162 ## On kernels from before 2014 MemAvailable is not present. |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
163 ## This is a rough estimate that can be used instead. |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
164 available_ram = (meminfo.MemFree + meminfo.Cached) * kiB; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
165 endif |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
166 free_swap = meminfo.SwapFree * kiB; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
167 used_ram = status.VmRSS * kiB; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
168 used_virtual = status.VmSize * kiB; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
169 avail_virtual = address_space - used_virtual; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
170 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
171 elseif (ispc ()) |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
172 [proc, sys] = __wmemory__ (); |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
173 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
174 total_ram = sys.TotalPhys; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
175 total_swap = sys.TotalPageFile; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
176 available_ram = sys.AvailPhys; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
177 free_swap = sys.AvailPageFile; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
178 used_ram = proc.WorkingSetSize; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
179 used_virtual = proc.PagefileUsage; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
180 avail_virtual = sys.AvailVirtual; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
181 address_space = sys.TotalVirtual; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
182 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
183 endif |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
184 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
185 available = min (available_ram + free_swap, avail_virtual); |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
186 ram_available = min (available_ram, avail_virtual); |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
187 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
188 ## FIXME: On 32bit systems, the largest possible array is limited by the |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
189 ## largest contiguous block in memory. |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
190 user.MaxPossibleArrayBytes = available; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
191 user.MemAvailableAllArrays = available; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
192 user.ram_available_all_arrays = ram_available; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
193 user.MemUsedMATLAB = used_virtual; # For Compatibility |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
194 user.mem_used_octave = used_virtual; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
195 user.ram_used_octave = used_ram; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
196 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
197 syst.PhysicalMemory.Available = available_ram; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
198 syst.PhysicalMemory.Total = total_ram; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
199 syst.SystemMemory.Available = available_ram + free_swap; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
200 syst.SystemMemory.Total = total_ram + total_swap; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
201 syst.VirtualAddressSpace.Available = avail_virtual; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
202 syst.VirtualAddressSpace.Total = address_space; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
203 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
204 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
205 if (nargout) |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
206 userdata = user; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
207 systemdata = syst; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
208 else |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
209 unitsize = kiB; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
210 unitname = 'kiB'; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
211 disp (sprintf ('Octave is running on %s', architecture)) |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
212 disp (sprintf ('System RAM: %9.0f %s, swap: %9.0f %s', |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
213 round (syst.PhysicalMemory.Total / unitsize), unitname, |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
214 round (total_swap / unitsize), unitname )) |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
215 disp (sprintf ('Octave RAM: %9.0f %s, virt: %9.0f %s', |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
216 round (user.ram_used_octave / unitsize), unitname, |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
217 round (user.mem_used_octave / unitsize), unitname)) |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
218 if (isunix ()) |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
219 ## The concept of free vs. available RAM doesn't seem to exist on Windows |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
220 disp (sprintf ('Free RAM: %9.0f %s, swap: %9.0f %s', |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
221 round (free_ram / unitsize), unitname, |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
222 round (free_swap / unitsize), unitname)) |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
223 endif |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
224 disp (sprintf ('Available RAM: %9.0f %s, total: %9.0f %s', |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
225 round (user.ram_available_all_arrays / unitsize), unitname, |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
226 round (user.MemAvailableAllArrays / unitsize), unitname)) |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
227 endif |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
228 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
229 endfunction |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
230 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
231 function [status, meminfo] = lmemory () |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
232 ## Read pseudo files to gather memory information on Linux |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
233 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
234 ## Read the proc/self/status pseudofile |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
235 ## see https://linuxwiki.de/proc/pid#A.2Fproc.2Fpid.2Fstatus |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
236 ## It contains a variable number of lines with name-value pairs. |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
237 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
238 f = fopen ('/proc/self/status'); |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
239 buffer = textscan (f, '%s %s', 'delimiter', ':\n'); |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
240 fclose (f); |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
241 for i = 1:size (buffer{1}, 1) |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
242 status.(buffer{1}{i}) = textscan (buffer{2}{i}){1}; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
243 endfor |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
244 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
245 ## Read the /proc/meminfo pseudofile |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
246 ## see https://linuxwiki.de/proc/meminfo |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
247 ## It contains a variable number of lines with name-value pairs. |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
248 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
249 f = fopen ('/proc/meminfo'); |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
250 buffer = textscan (f, '%s %s', 'delimiter', ':\n'); |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
251 fclose (f); |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
252 for i = 1:size (buffer{1}, 1) |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
253 meminfo.(buffer{1}{i}) = textscan (buffer{2}{i}){1}; |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
254 endfor |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
255 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
256 endfunction |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
257 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
258 |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
259 %!testif ; isunix () || ispc () |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
260 %! [user, syst] = memory (); |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
261 %! assert (user.mem_used_octave > 0); |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
262 %! assert (user.ram_used_octave <= user.mem_used_octave); |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
263 %! assert (user.mem_used_octave < syst.SystemMemory.Total); |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
264 %! assert (user.MemAvailableAllArrays <= syst.SystemMemory.Available); |
2f571bfff344
Add "memory" function (patch #9924).
Lars Kindermann <lars.kindermann@reglos.de>
parents:
diff
changeset
|
265 |