objs
语法
objs([shared=false])
参数
shared 布尔值,默认为 false。
false:返回当前会话中所有变量的信息;
true:返回当前会话中所有变量的信息以及所有会话共享的变量信息;
详情
用于获取内存中缓存的各变量的内存占用情况等信息。返回一个表,它具有以下几列:
name: 变量名。
type: 变量的数据类型。
form: 变量的数据形式。
rows:
若 form 为向量/字典/集合,则返回所有元素(包含NULL)的个数
若 form 为矩阵/表,则返回它们的行数
columns:
若 form 为向量/字典/集合,则返回 1
若 form 为矩阵/表,则返回它们的列数
bytes: 变量占用的内存大小,单位为字节
shared: 是否为共享变量
extra: 分布式表的逻辑路径,格式为 “dfs://dbName/tableName”
注意,该函数不返回函数定义。我们应该用 defs 检查函数定义,或通过 memSize 查看函数定义的内存占用。
例子
//创建分布式数据库
$ if(existsDatabase("dfs://listdb")){
$ dropDatabase("dfs://listdb")
$ }
$ n=1000000
$ ticker = rand(`MSFT`GOOG`FB`ORCL`IBM,n);
$ ticker[0..5]
$ x=rand(1.0, n)
$ t=table(ticker, x)
$ db=database(directory="dfs://listdb", partitionType=HASH, partitionScheme=[STRING, 5])
$ pt=db.createPartitionedTable(t, `pt, `ticker)
$ pt.append!(t)
// 共享内存表
$ time = take(2021.08.20 00:00:00..2021.08.30 00:00:00, 40);
$ id = 0..39;
$ value = rand(100, 40);
$ tmp = table(time, id, value);
$ share tmp as st
// 创建 set
$ s = set([1,2,3,4,5])
// 创建 dict
$ x=1 2 3
$ y=4.5 7.8 4.3
$ z=dict(x,y);
// 创建 matrix
$ m = matrix(1 2 3, 4 5 6)
// 创建 pair
$ p = 1:2
$ objs(true)
name |
type |
form |
rows |
columns |
bytes |
shared |
extra |
---|---|---|---|---|---|---|---|
n |
INT |
SCALAR |
1 |
1 |
16 |
false |
|
ticker |
SYMBOL |
VECTOR |
1,000,000 |
1 |
4,000,000 |
false |
|
x |
INT |
VECTOR |
3 |
1 |
12 |
false |
|
t |
BASIC |
TABLE |
1,000,000 |
2 |
12,000,312 |
false |
|
db |
HANDLE |
SCALAR |
1 |
1 |
24 |
false |
|
pt |
ALIAS |
TABLE |
0 |
2 |
12,000,000 |
false |
dfs://listdb/pt |
time |
DATETIME |
VECTOR |
40 |
1 |
160 |
false |
|
id |
INT |
VECTOR |
40 |
1 |
160 |
false |
|
value |
INT |
VECTOR |
40 |
1 |
160 |
false |
|
tmp |
BASIC |
TABLE |
40 |
3 |
832 |
false |
|
s |
INT |
SET |
5 |
1 |
28 |
false |
|
y |
DOUBLE |
VECTOR |
3 |
1 |
24 |
false |
|
z |
DOUBLE |
DICTIONARY |
3 |
1 |
199 |
false |
|
m |
INT |
MATRIX |
3 |
2 |
24 |
false |
|
p |
INT |
PAIR |
2 |
1 |
8 |
false |
|
st |
BASIC |
TABLE |
40 |
3 |
832 |
true |