# 已知问题

本页记录当前确认的用户侧可感知问题与规避方案。
如果你的使用场景命中这些条件，建议按文中建议调整部署策略。

## 示例代码

```python
from tarsio import Struct

for i in range(1_000_000):
    Dynamic = type(f"S{i}", (Struct,), {"x": int})
    _ = Dynamic(1)
```

这类无界动态建类并实例化的模式，可能导致进程内存持续上升。

## 核心概念

### 动态 `Struct` 子类的内存增长

* 现象: 动态创建并实例化大量 `Struct` 子类后，类型对象可能长期存活。
* 影响: 常驻服务在长时间运行下可能出现明显内存增长。
* 根因状态: 当前更可能与 PyO3 和 CPython 的类型生命周期交互相关，仍在持续定位。

### 触发条件

* 只动态创建类型但不实例化时，问题通常不明显。
* 在无界循环中持续创建新类型并实例化时，最容易触发。

### 临时规避

* 优先缓存并复用 `Struct` 类型，避免每次请求重新建类。
* 对必须动态生成 schema 的任务，建议放到独立 worker 进程并周期性重启。
* 为高风险路径增加内存监控告警和熔断策略。

## 注意事项

* 此问题主要影响“动态 schema 生成”场景，静态 schema 项目通常不受影响。
* 若你确认出现同类现象，建议附最小复现脚本反馈到仓库 Issue。
