为什么在twirl中使用@ routes.Assets.versioned时播放框架2.4是如此之慢?

时间:2016-02-07 14:21:20

标签: 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来解决资产问题时。

    <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 个答案:

答案 0 :(得分:2)

返回原始数据的操作与需要解析和渲染某些Twirl视图视图的操作之间总是存在差异,另外versioned资产检查每个文件,因此它为整个过程添加了额外的作业

比较两个Twirl视图的效果,一个使用versioned方法,另一个用手动添加字符串,并考虑如何优化视图。

另外考虑在可能的情况下缓存结果,它肯定会加快速度。