60 lines
2.1 KiB
Python
60 lines
2.1 KiB
Python
"""
|
|
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()
|