Grails视图框架中的性能问题

时间:2010-09-06 18:55:54

标签: grails view layout

我运行了一些测试来跟踪grails应用程序的响应时间。

我以这种方式使用grails的layout-view框架:

在控制器中,我确定要使用的视图和布局

然后我用这样的代码渲染一个genericView:

所以这个genericView做了所有的魔术。

我创建了一个性能过滤器,用于跟踪afterController和beforeController(控制器时间)之间以及beforeController和renderView(查看时间)之间需要多长时间。

在布局中,我有很多<g:pageProperty name="">个标签,在视图中,<content tag="..">中的嵌套包含<g:include controller="..."/>的编号相同。

这非常有效,它让我可以重用布局(作为html部分的配置)和视图(处置和实际内容之间的映射)。

当我在视图时间中取平均值时,所有包含的内容都需要35毫秒。

我认为这很多。

您是否知道grails框架的任何其他有用替代方案,以便在呈现视图时包含并保留视图?

或许我必须以更好的方式使用框架?

编辑:我注意到时间花在<g:include controller="..."/>上。

我在视图中包含4个控制器。 包含的控制器和操作只有render "something" 时间是这样的:

主控制器: 控制器时间:3.98 查看时间:43.87

其他控制器(包含在主视图中): 总计:15.55

所以4包含视图需要 28.32毫秒才能运行

任何指针都会有所帮助。

提前致谢。

2 个答案:

答案 0 :(得分:1)

Groovy和Grails确实存在一些性能问题,但总的来说它们可以忽略不计,因为数据库和网络延迟通常构成了请求时间的大部分时间。所以当我看到这个问题并期待可怕的数字时,我很好奇。 35毫秒非常快。我认为你有更重要的事情需要担心。

答案 1 :(得分:1)

由于我有限的grails开发,你的表现似乎是标准的,没有任何异常。我相信这是一个过早优化的案例。你有什么硬性能目标,你在编写一个需要响应时间在一定值内的应用程序吗?您是否比较过任何其他模型视图控制器框架和开发工具(例如Spring Roo),以了解性能比较以及它们在那里花费的时间?有了关于您的应用程序的更多信息,很难说出您的瓶颈所在,但我认为您遇到的任何性能问题都更有可能发生在您的REST服务或数据库访问中。那些可能是您首先要关注的领域。尽可能使用Hibernate现金或兑现REST调用的结果可能有所帮助。