🐛 fix(tsl-syntax-reference): close verified syntax gaps
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
|
||||
<!-- section-id: syntax-14-001 -->
|
||||
|
||||
回答“`goto`、`debugReturn`、`debugRunEnv`、`mtic` / `mtoc`、`setProfiler`、`__line__` 和 `__stack_frame` 怎样写、会怎样表现”。
|
||||
回答“`goto`、`debugReturn`、`debugRunEnv`、`mtic` / `mtoc`、`setProfiler`、内存伪变量、`__line__` 和 `__stack_frame` 怎样写、会怎样表现”。
|
||||
|
||||
## 核心规则
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
- `setProfiler(7)` 配合 `getProfilerInfo(1)`,可以在不弹窗的情况下拿到性能分析器信息。
|
||||
- `__line__` 会返回所在代码行号。
|
||||
- `__stack_frame` 会返回调用栈帧数组;最小 `toStn(...)` 观察结果里,每一项是 `(line, "function")` 这一类二元组。
|
||||
- `_myMem_` 表示应用当前已使用内存,`_maxMem_` 表示应用允许使用的最大内存;两者是只读数值伪变量。单位和 `_maxMem_` 的具体取值由宿主环境决定。
|
||||
|
||||
## 可直接照写示例
|
||||
|
||||
@@ -217,6 +218,32 @@ writeLn(length(info) > 0);
|
||||
- 说明 `setProfiler(7)` 可以开启性能分析器统计
|
||||
- 说明 `getProfilerInfo(1)` 会直接返回性能分析器信息,而且结果是非空数组
|
||||
|
||||
### 内存伪变量 `_myMem_` / `_maxMem_`
|
||||
|
||||
<!-- section-id: syntax-14-011 -->
|
||||
|
||||
<!-- tags: 已用内存, 内存上限, 最大内存, 内存伪变量, _myMem_, _maxMem_ -->
|
||||
|
||||
代码块身份:可直接照写示例
|
||||
|
||||
```tsl
|
||||
writeLn(ifNumber(_myMem_));
|
||||
writeLn(ifNumber(_maxMem_));
|
||||
```
|
||||
|
||||
代码块身份:输出片段
|
||||
|
||||
```text
|
||||
1
|
||||
1
|
||||
```
|
||||
|
||||
说明:
|
||||
|
||||
- `_myMem_` 是应用已使用内存的数值
|
||||
- `_maxMem_` 是宿主允许应用使用的最大内存数值;某些环境可能返回 `0` 表示未给出可比较的上限
|
||||
- 不要假设 `_maxMem_ >= _myMem_`,也不要在没有宿主文档时写死单位
|
||||
|
||||
### `__line__` 与 `__stack_frame`
|
||||
|
||||
<!-- section-id: syntax-14-009 -->
|
||||
@@ -276,3 +303,4 @@ array(
|
||||
- 不要假设 `goto` 可以跨函数、跨脚本体或跳到单独成行的 `label`。
|
||||
- 不要给计时或性能分析器调用补未写入文档参数。
|
||||
- 不要把调试客户端副作用写成普通输出事实。
|
||||
- 不要假定 `_maxMem_` 总是非零、总是大于 `_myMem_`,或擅自指定内存单位。
|
||||
|
||||
Reference in New Issue
Block a user