perf(main): 리로드 감시에서 node_modules 를 품은 폴더도 뺌
앞 커밋(351db312)이 storage·venv 는 뺐으나 `config` 가 남아 있었음.
그 안에 `node_modules` 가 있어 0.25초마다 의존성 트리를 훑고 있었음.
`node_modules` 를 품은 폴더는 감시에서 제외. 그 결과 `config/` 를 고칠 때는
`main.py` 와 마찬가지로 서버를 손으로 다시 띄워야 함 — 둘 다 자주 고치는
자리가 아님.
⚠ 측정 메모 — 루트 전체 훑기는 이 기기에서 **300초에도 한 줄을 못 뱉었음**
(옛 방식이 0.25초 주기를 지킬 수 없었다는 뜻). 다만 지금 기기가 계속
눌려 있어(서버 둘이 놀면서도 각 70%) 정확한 전후 수치는 못 냈음.
그 CPU 자체는 별건으로 계획서에 남겨 둠.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -505,13 +505,16 @@ def _reload_dirs() -> list[str]:
|
||||
파이썬이 실제로 사는 폴더만 준다 — 화면 코드(TS)는 vite 가 따로 본다.
|
||||
"""
|
||||
root = Path(__file__).resolve().parent
|
||||
# ⚠ 루트 자체는 넣지 않는다 — uvicorn 은 준 폴더를 `rglob("*.py")` 로 **재귀**로 훑으므로
|
||||
# 루트를 주면 storage·venv(파이썬 파일만 7,530개)를 도로 다 훑는다. 그 대신 `main.py`
|
||||
# 를 고칠 때는 서버를 손으로 다시 띄워야 한다(자주 있는 일이 아님).
|
||||
# ⚠ 루트와 `config` 는 넣지 않는다 — uvicorn 은 준 폴더를 `rglob("*.py")` 로 **재귀**로
|
||||
# 훑는다. 루트를 주면 storage·venv(파이썬 파일만 7,530개)를 도로 다 훑고, `config` 안에는
|
||||
# `node_modules` 가 들어 있어 역시 무겁다. 그 대신 **`main.py` 와 `config/` 를 고칠 때는
|
||||
# 서버를 손으로 다시 띄울 것** (둘 다 자주 고치는 자리가 아니다).
|
||||
watched: list[str] = []
|
||||
for entry in sorted(root.iterdir()):
|
||||
if not entry.is_dir() or entry.name.startswith(".") or entry.name in _RELOAD_SKIP:
|
||||
continue
|
||||
if (entry / "node_modules").is_dir():
|
||||
continue # 의존성 트리가 안에 있으면 훑는 값이 이득을 넘는다
|
||||
if any(entry.rglob("*.py")):
|
||||
watched.append(str(entry))
|
||||
return watched
|
||||
|
||||
Reference in New Issue
Block a user