Почему фреймворк 2.4 работает так медленно при использовании @rout.Assets.versioned в twirl?
У меня есть контроллер, когда я отрисовываю шаблон вращения и возвращаю его в своем действии. производительность воспроизведения снижается примерно в 5 раз (15000 запросов в секунду в тесте Apache). но когда я возвращаю json в этом действии, производительность игры возрастает примерно в 5 раз (79000 запросов в секунду в тесте apache). У меня есть очень простой шаблон twirl:
@(message: String)
@main("Welcome to Play") {
@message
}
Обновление: я обнаружил, что, когда я использую @rout.Assets.versioned вместо @rout.Assets.at для адресации активов, эта проблема возникает.
<link rel="stylesheet" media="screen" href="@routes.Assets.versioned("stylesheets/main.css")">
<link rel="shortcut icon" type="image/png" href="@routes.Assets.versioned("images/favicon.png")">
<script src="@routes.Assets.versioned("javascripts/hello.js")" type="text/javascript"></script>
1 ответ
Всегда будет разница между действием, возвращающим необработанные данные, и действиями, которые должны анализировать и визуализировать некоторые представления представлений Twirl, дополнительно versioned
актив проверяет каждый файл, поэтому он добавляет дополнительные задания для всего процесса.
Сравните производительность двух просмотров Twirl, одного с versioned
Используется другой метод с ручным добавлением строки, и подумайте, как можно оптимизировать ваши представления.
Также рассмотрите возможность кэширования результатов, где это возможно, это наверняка ускорит процесс.