【发布时间】:2026-02-21 21:30:01
【问题描述】:
我运行了一些测试来跟踪 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 毫秒才能运行!
任何指针都会有所帮助。
提前致谢。
【问题讨论】:
-
查看 grails 源代码以了解包含期间发生的情况。或者,更好的是,使用分析器。由于您处于该应用程序的高级阶段,因此您需要确切地知道原因。是的,4 个空控制器的 28 毫秒太多了。