Extra Form
PHP PHP 7.4
CMS Rhymix 2.0

스크린샷 2024-03-31 195930.png

 

 

저 위젯 컨드롤러 부분이 2초 넘게 잡아먹는데 어떤 경우인가요?? 어떻게 해결해야하나요?

 

모듈 - 위젯 - widget.Controller 파일에 트리거 위젯은 이부분밖에 없습니다.

 

function triggerWidgetCompile(&$content)
    {
        if(Context::getResponseMethod()!='HTML') return;
        $content = $this->transWidgetCode($content, $this->layout_javascript_mode);
    }

 

역시 저 컨텐트 위젯때문일까요?

  • profile

    네, 아래에 나오는 contentextended 위젯 3개의 실행 시간을 더하면 위젯 컨트롤러의 실행 시간과 거의 일치하는 것을 볼 수 있습니다. 위젯 컨트롤러는 위젯을 불러와서 실행해 주는 역할뿐이니, 실제로 대부분의 시간을 잡아먹고 있는 것은 contentextended 위젯이지요. 원래부터 느려터진 위젯이라 이상할 것도 없네요.

  • profile ?
    그럼 괜찮은 위젯이 있을까요?? 그냥 contend 위젯으로 갈아탈까요?
  • ? profile
    어떤 조건으로 어떤 게시물을 추출하는지에 따라 다릅니다.
    기본 content 위젯에 없는 기능도 있으니까요.
    디버그 패널에서 슬로우 쿼리를 찍어보면 무엇이 문제인지 좀더 확실히 알 수 있겠지요.
  • profile ?
    슬로우 쿼리 선택한 화면창입니다. 느린 쿼리, 느린 위젯, 느린트리거 등등 느린은 다 선택했습니다. 추천수를 기반으로 하는 위젯이 필요한데 contentextend 밖에 없어서요..
  • ? profile
    위젯이 느리다면 대부분 쿼리 때문인데, 슬로우 쿼리가 안 뜬다는 것은 이상하네요. 슬로우 쿼리 기준을 너무 높게 잡아두신 것 아닐까요? 0.1초만 넘어가도 문제가 있는 것으로 봐야 합니다.

    만약 슬로우 쿼리 기준을 낮춰도 뜨지 않는다면, 빠른 쿼리를 수십 번 반복해서 실행하고 있을 수도 있습니다. 이런 경우 위젯보다는 스킨에서 루프 돌리는 것이 문제인 경우도 은근히 많아서, 위젯을 교체하더라도 스킨을 똑같이 만들면 문제가 재발하곤 하지요.
  • profile ?

    스크린샷 2024-03-31 211546.png

     

    0.05 초로 느린 쿼리 기록해도 나오지 않았습니다.

     

    지금 하고 있는 위젯은 추천수 별로 - 최신 정렬을 해놨습니다.  랜덤도 아니라 부하가 크지 않을거라 예상했습니다만 추천수 - 최신순 정렬을 하려고 위젯을 만든 상태입니다.