사이트 속도가 느려서 디버그 패널 확인결과 widgetcontroller
CMS/프레임워크 | Rhymix 2.0 |
---|---|
개발 언어 | PHP 7.4 |
저 위젯 컨드롤러 부분이 2초 넘게 잡아먹는데 어떤 경우인가요?? 어떻게 해결해야하나요?
모듈 - 위젯 - widget.Controller 파일에 트리거 위젯은 이부분밖에 없습니다.
function triggerWidgetCompile(&$content)
{
if(Context::getResponseMethod()!='HTML') return;
$content = $this->transWidgetCode($content, $this->layout_javascript_mode);
}
역시 저 컨텐트 위젯때문일까요?
댓글 6
네, 아래에 나오는 contentextended 위젯 3개의 실행 시간을 더하면 위젯 컨트롤러의 실행 시간과 거의 일치하는 것을 볼 수 있습니다. 위젯 컨트롤러는 위젯을 불러와서 실행해 주는 역할뿐이니, 실제로 대부분의 시간을 잡아먹고 있는 것은 contentextended 위젯이지요. 원래부터 느려터진 위젯이라 이상할 것도 없네요.
기본 content 위젯에 없는 기능도 있으니까요.
디버그 패널에서 슬로우 쿼리를 찍어보면 무엇이 문제인지 좀더 확실히 알 수 있겠지요.
만약 슬로우 쿼리 기준을 낮춰도 뜨지 않는다면, 빠른 쿼리를 수십 번 반복해서 실행하고 있을 수도 있습니다. 이런 경우 위젯보다는 스킨에서 루프 돌리는 것이 문제인 경우도 은근히 많아서, 위젯을 교체하더라도 스킨을 똑같이 만들면 문제가 재발하곤 하지요.
0.05 초로 느린 쿼리 기록해도 나오지 않았습니다.
지금 하고 있는 위젯은 추천수 별로 - 최신 정렬을 해놨습니다. 랜덤도 아니라 부하가 크지 않을거라 예상했습니다만 추천수 - 최신순 정렬을 하려고 위젯을 만든 상태입니다.