활성화 된 모듈이 많을수록 사이트 속도가 느려 집니까?


13

활성화 된 모듈이 많을수록 사이트 속도가 느려 집니까?
내 사이트에 30 개의 모듈을 설치했는데 너무 느려질 것 같습니다.

답변:


11

더 많은 모듈이 활성화되면 더 많은 파일이로드되고 파싱 될 때 Drupal 부트 스트랩이 느려집니다. 또한 모든 모듈이 요청 된 모든 페이지에 대해 코드를 실행하는 것은 아니기 때문에 더 많은 모듈이 활성화되어 있다고해서 사이트 속도가 느려지는 것은 아닙니다.

예를 들어,보기를 설치했고 첫 페이지보기 만 사용하도록 설정 한 경우 요청 된 페이지가 노드 페이지 인 경우보기가 실행되지 않습니다. 그러나 Views 모듈은을 구현 hook_menu_alter()하며, 뷰를 활성화하지 않았지만 Views 모듈이 활성화 된 경우에도 실행됩니다. 모든 hook_menu_alter()메뉴 구현은 메뉴가 다시 작성 될 때 호출되며 일반적으로 모든 페이지 요청에서 발생하지는 않습니다.


6
"아무것도하지 않는"모듈이 많으면 사이트 속도가 약간 느려집니다. 후크 시스템이 작동하는 방식과 관련이 있습니다. Drupal은 후크가 실행될 때마다 설치된 모든 모듈에 대해 module_hook 호출을 수행합니다. 이 모든 수표를 추가 할 수 있습니다. 우리 사이트에서 module_hook은 13,000 번 호출되며 168ms가 걸렸습니다. 조금씩 더해집니다.
mikeytown2

15

예. 그러나 30은 걱정할 것이 없습니다. 당신은 100 이상 갈 때 문제가 있습니다;)

바이트 코드 캐시 (APC 또는 XCache)를 설치하여 많은 파일을 포함하는 속도 저하의 대부분을 제거하고 사용하지 않는 모듈을 정기적으로 제거하십시오 (일반적으로 모든 프로젝트는 개발 중 어느 시점에서 사용되지 않는 모듈을 수집합니다)


Commerce Kickstart는 96 개의 contrib 모듈을 사용합니다.
Pere

XCache를 설치하면 페이지가 반으로 렌더링됩니다. 감사.
cherouvim

1

@Bojan Zivanovic 및 @kiamlaluno의 두 가지 응답을 모두 보완하면 모듈 상호 작용에주의해야합니다. 모듈이 많으면 약물 상호 작용과 같은 잘못된 모듈 상호 작용 의 위험이 높아집니다 . 50 개가 넘는 모듈을 사용하는 것은 위험하므로 동일한 작업 도메인에 여러 모듈을 사용하지 않는지 조기에 확인해야합니다.

예를 들어 블록, 뷰, 패널, 뷰를 포함하는 필드, 뷰를 포함하는 블록, 뷰를 포함하는 패널을 포함하는 블록 ... 아이디어는 정상적인 두뇌가 이해할 수있는 것을 얻는 것입니다 (다른 페이지는 어떻게 구성되어 있습니까) . 이것은 몇 가지 복잡한 로딩 동작이 숨겨지고 연결될 때 성능에 큰 영향을 줄 수 있습니다. 또 다른 예는 각 컨텐츠에 대해 여러 모듈에서 여러 ACL 규칙을 추가하는 것입니다.

성능이 염려되면 항상 프로파일 링 모듈을 사용 하고 새 모듈을 추가 할 때마다 차이점을 추적하십시오. 때로는 SQL 내부에 사용자 정의 템플릿이 포함 된 작은 후크가있어 웹 사이트 시간 생성을 절약 할 수 있습니다.


드루팔은 "정상 뇌"를 위해 만들어 졌습니까? :)
pico34

1

사이트 구축 중에 염두 사이트 속도를 높일 수있는 3 가지 사항은 다음과 같습니다.

  1. 모듈 수 감소
  2. mySQL 쿼리 로그에서 느린 쿼리가 있는지 확인하고 필요에 따라 코드를 조정하거나 인덱스를 추가하십시오.
  3. 캐싱 (및 대부분의 사용자가 인증되지 않기를 바랍니다)

그리고 모듈 부분에 관해서는 처리하기 위해 더 큰 RAM이 필요했기 때문에 분명히 더 많은 수의 모듈이 느려질 것입니다.

여전히 30 ~ 60 개의 모듈이 사이트에 큰 영향을 미치지 않습니다.

사이트 로딩 시간 및 모듈 수에 대한 배급은 100 모듈과 같으므로 350ms에서 650ms까지 사이트를 지연시킵니다.

당신이 그 점을 명심해야 wuold U 다음 사이트에 대한 희망 .. :)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.