Лучшая техника для кэширования результатов запросов то изменение нечасто

Не вставляйте функции или переменные JMeter в сценарии.

Попробуйте использовать переменные JMeter в своих скриптах следующим образом:

String addrress1= vars.get("AdID1");
String memberAddress1= vars.get("MAdID1");

Рекомендуется использовать Тестовые элементы JSR223 и Groovy Language , а не BeanShell.

6
задан Brian Tompsett - 汤莱恩 3 November 2015 в 10:01
поделиться

4 ответа

Существует действительно несколько опций:

  • Предварительно представьте страницы еженедельно и затем служите им "статически".
  • Используйте кэш (например, Сквид) для кэширования таких ответов на основе первого шанса в течение недели. Например, можно ли настроить кэширующуюся политику так запросы, которые переходят к конкретной странице (например, very_long.php?...), кэшируются отдельно от остальной части веб-сайта.
  • Удостоверьтесь, что Вы включаете кэширование DB. MySQL имеет собственное кэширование, и можно точно настроить его так, чтобы повторные долгие запросы не были повторно вычислены.
5
ответ дан 8 December 2019 в 14:47
поделиться

В функции для генерации таблицы заставьте его сохранить результат в файл на диске:

/cache/groups/1.txt
/cache/groups/2.txt

Необходимо не обязательно выполнить еженедельное пакетное задание для него при вызывании функции, чтобы получить данные, проверить, устарел ли кэш (или не существует). Если так, генерируйте и кэшируйте результаты затем. В противном случае просто возвратите кэшируемый файл.

function getGroupTable($groupId) {
    if (cacheIsStale($groupId)) {
        generateCache($groupId);
    }
    return file_get_contents($cacheFile);
}

cacheIsStale() функция могла просто посмотреть на метки времени файла для тестирования на свежесть.

6
ответ дан 8 December 2019 в 14:47
поделиться

Кажется, что у Вас уже есть большая часть из покрытого.

Еще одна опция, принимая данные таблицы не огромна, должен использовать кэш-память для кэширования результатов - это, вероятно, было бы более быстрым решением, хотя необходимо будет проверить требования к памяти видеть, является ли это жизнеспособный вариант.

2
ответ дан 8 December 2019 в 14:47
поделиться

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

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

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

3
ответ дан 8 December 2019 в 14:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: