""" LS TEMP 적용 후 pick + age_cut 쿼리 시간 측정 - 기존: ls_ws_ticks 직접 풀스캔 + REGEXP_REPLACE → ~9초 - 개선: LS TEMP 생성 후 lag_sec 기 계산 → TEMP 스캔 """ import sys, os, time sys.path.insert(0, '/home/hoon/kis_bot') os.chdir('/home/hoon/kis_bot') from database import TradeDB from kis_trader.web.feed_collect_stats import _FeedStatsDaySlice, _count_tick_picks, _count_ob_picks, _feed_age_cut_stats db = TradeDB() DAY8 = "20260902" # 오늘 try: print(f"=== LS TEMP 적용 후 성능 측정 (day={DAY8}) ===\n") # 1. TEMP 생성 시간 t0 = time.time() ds = _FeedStatsDaySlice(db, DAY8) ds.ensure() t_temp = time.time() - t0 print(f"[TEMP 생성] {t_temp:.2f}초") print(f" KIS/키움: ready={ds.ready}, tick_n={ds.tick_n}, ob_n={ds.ob_n}") print(f" LS: ls_ready={ds.ls_ready}, ls_tick_n={ds.ls_tick_n}, ls_ob_n={ds.ls_ob_n}\n") # 2. _count_tick_picks t0 = time.time() tick_wins = _count_tick_picks(db, DAY8, 3.0, ["kiwoom", "kis", "ls"], day_slice=ds) t_tick_pick = time.time() - t0 print(f"[tick_picks] {t_tick_pick:.2f}초 → {tick_wins}") # 3. _count_ob_picks t0 = time.time() ob_wins = _count_ob_picks(db, DAY8, 3.0, ["kiwoom", "kis", "ls"], day_slice=ds) t_ob_pick = time.time() - t0 print(f"[ob_picks] {t_ob_pick:.2f}초 → {ob_wins}") # 4. _feed_age_cut_stats (ls 구간 포함) t0 = time.time() age_cut = _feed_age_cut_stats(db, DAY8, 3.0, day_slice=ds) t_age = time.time() - t0 print(f"\n[_feed_age_cut_stats] {t_age:.2f}초") for row in age_cut.get("rows", []): src = row.get("source", "?") tot = row.get("total", 0) pass_p = row.get("pass_pct", "-") print(f" {src}: total={tot}, pass={pass_p}%") print(f"\n=== 합계 ===") print(f" TEMP 생성: {t_temp:.2f}초") print(f" tick_picks: {t_tick_pick:.2f}초") print(f" ob_picks: {t_ob_pick:.2f}초") print(f" age_cut_stats: {t_age:.2f}초") print(f" 전체 합산: {t_temp + t_tick_pick + t_ob_pick + t_age:.2f}초") finally: db.close()