29e55de1fa7da0e8821b2db8082697509a3f147d
기존 구현은 일반 텍스트 게시글(URL/이메일이 전혀 없는 대부분의 경우) 에서도 3개의 preg_replace를 항상 호출하여, 모든 게시글 본문 렌더링 마다 불필요한 regex 컴파일/스캔 오버헤드가 발생. 개선: 1. Fast bailout: ://, www., @, &, ' 가 하나도 없으면 즉시 반환하여 forward/reverse str_replace와 3개의 preg_replace를 모두 생략. 2. 조건부 regex 실행: 각 regex 호출 전에 해당 패턴이 실제로 존재하는지 strpos로 먼저 확인. URL 패턴 없으면 URL regex 생략, 이메일 없으면 email regex 생략 등. strpos x5 (~1ms) vs preg_replace x3 (~20ms+) 이므로 일반 텍스트 게시글 에서 10~20배 이상 빠르게 동작. 페이지에 수십~수백 개 게시글을 표시하는 목록/검색 페이지에서 누적 효과가 큼. 의미론적 동등성 유지: 각 marker가 없으면 해당 regex가 원래도 no-op였으므로 조건부 실행은 결과에 영향 없음. Fast path는 모든 marker가 없을 때만 동작하므로 str_replace의 부작용(& entity 디코딩 등)도 발생할 여지가 없음.
The file is empty.
Languages
PHP
70.9%
JavaScript
16.7%
CSS
7.6%
HTML
4.6%
Python
0.2%