Playframework 为什么play framework 2.4在twirl中使用@routes.Assets.version时速度如此缓慢?

Playframework 为什么play framework 2.4在twirl中使用@routes.Assets.version时速度如此缓慢?,playframework,assets,benchmarking,playframework-2.4,twirl,Playframework,Assets,Benchmarking,Playframework 2.4,Twirl,当我渲染旋转模板并在操作中返回它时,我有一个控制器。播放性能下降约5倍(在apache基准测试中每秒15000个请求)。但当我在这个动作中返回json时,性能提高了大约5倍(在apache基准测试中每秒79000个请求)。我有一个非常简单的旋转模板: @(message: String) @main("Welcome to Play") { @message } 更新:我发现当我使用@routes.Assets.versioned而不是@routes.Assets.at来处理资产

当我渲染旋转模板并在操作中返回它时,我有一个控制器。播放性能下降约5倍(在apache基准测试中每秒15000个请求)。但当我在这个动作中返回json时,性能提高了大约5倍(在apache基准测试中每秒79000个请求)。我有一个非常简单的旋转模板:

@(message: String)

@main("Welcome to Play") {

    @message

}
更新:我发现当我使用@routes.Assets.versioned而不是@routes.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>

返回原始数据的操作和需要解析和呈现一些旋转视图的操作之间总是有区别的,另外,
版本化的资产检查每个文件,因此它为整个过程添加了额外的作业

比较两个旋转视图的性能,一个是版本方法,另一个是手动添加字符串,并考虑如何优化视图。


也考虑在可能的情况下缓存结果,它肯定会加速事情。

为什么当我使用@例程?AsETS.我没有这个问题。你是如何运行应用程序的?使用
run
?不,我使用
activator start
@SaeedZarinfam,我怀疑
versioned
正在散列整个文件,因此它可以附加散列的缓存中断查询字符串。他们应该缓存这个值,如果需要更新,就检查时间戳。