Модули Drupal вызывают функции автоматически на определенных страницах, как мне найти код, который останавливает это? - PullRequest
1 голос
/ 23 ноября 2010

Я пытаюсь ускорить сайт Drupal 6, на котором запущено несколько модулей.

Я просматриваю запросы на определенных страницах и вижу, что на сайте выполняются запросы, которые не нужно запускать на некоторых страницах.

Глядя на это, кажется, что некоторые модули содержат код, который в основном говорит: «Когда кто-то посещает страницу X, запустите этот запрос, чтобы его результаты могли отображаться».

Дело в том, что этот сайт не использует эти данные, поэтому я хочу остановить выполнение запроса.

Однако я недостаточно разбираюсь в хуках и системе меню Drupal, чтобы иметь возможность точно определять строки кода, вызывающие выполнение этих запросов, поэтому я могу их убить.

Кто-нибудь знает, что я должен искать?

Ответы [ 3 ]

0 голосов
/ 23 ноября 2010

Если вы не используете модули и если модули, которые вызывают эти запросы, не являются частью основных функций drupal, просто отключите их.

Обычно вы можете изменять хуки других модулей, используя hook_alter. Взгляните сюда: hook_alter

Вы также можете попытаться найти определенный набор разрешений для выполнения этих запросов и удалить разрешение для ролей, которые в них не нуждаются.

В противном случае я не уверен, что вы можете просто отключить запросы, которые легко, без изменения ядра (, что не рекомендуется !!! ).

0 голосов
/ 23 ноября 2010

Вы не сможете реально сделать это. Многое происходит на каждой странице, потому что нет автозагрузчика, который загружает только тот код, который ему нужен для каждой страницы. Это то, что делает Drupal таким сильным благодаря своей системе хуков, где любой модуль может вызывать любую часть Drupal в любое время и взаимодействовать. Это также недостаток, если вы хотите посмотреть на это так. Но компромисс делает Drupal таким гибким.

Если вы хотите ускорить работу сайта, попробуйте перейти к Performance и объединить CSS / JS, сжатие страниц. Вы также можете добавить модуль Boost для обслуживания статических HTML-страниц. Есть и другие модули, такие как memcache, AuthCache и CacheRouter. Это то, что вы захотите изучить, а не взламывать ядро.

0 голосов
/ 23 ноября 2010

Прежде чем вы начнете пытаться улучшить производительность, вам действительно нужно выяснить, где производительность снижается.

Вам необходимо найти, где потрачено наибольшее время / наибольшая выгода.Отключение случайных запросов, которые не нужны для некоторых страниц, вероятно, потребует много времени без каких-либо заметных результатов.

...