Skip to content

optimization: PostToolUse hook performance — reduce per-call I/O #931

@JeremyDev87

Description

@JeremyDev87

Purpose

PostToolUse hook이 모든 tool 호출마다 3회 I/O (DB open/write/close + stats update + notification check) 수행. 빈번한 tool 호출 시 지연 발생 가능.

Changes

  • packages/claude-code-plugin/hooks/post-tool-use.py — lazy initialization, connection reuse
  • packages/claude-code-plugin/hooks/lib/history_db.py — singleton 패턴 또는 connection pool
  • packages/claude-code-plugin/hooks/lib/stats.py — batch write 또는 in-memory accumulation

Acceptance Criteria

  • DB connection을 세션당 1회 open, 재사용 (singleton)
  • Stats를 in-memory에 축적, 주기적 flush (N회마다 또는 Stop 시)
  • Notification check를 conditional로 변경 (설정 비활성화 시 skip)
  • 벤치마크: 기존 대비 hook 실행 시간 50%+ 감소
  • 기존 테스트 모두 통과

Metadata

Metadata

Assignees

No one assigned

    Labels

    optimizationPerformance and optimization tasks

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions