我希望在控制器中打印每个请求,请求开始时,结束时以及过程有多长时间。我是否需要将这些代码分别添加到每个请求中或者是否有任何通用的方法来执行此操作?Grails:打印每个请求需要多长时间
回答
除了存在各种各样的插件(例如Profiler)之外,一个非常简单的解决方案就是使用过滤器。此blog post将引导您完成设置过滤器的过程,该过滤器将记录每个控制器操作的开始和结束时间。
使用Grails的过滤器将是一个很简单的例子:
class PerfFilter {
def filters = {
profiler(controller: '*', action: '*') {
before {
request._startTime = System.currentTimeMillis()
log.trace("Beginning ${controllerName} ${actionName}")
}
after {
log.trace("Finished ${controllerName} ${actionName}")
log.trace("Total time to execute was: ${System.currentTimeMillis() - request._startTime}")
}
}
}
}
如果你需要的东西的整体性能监控更加坚固我强烈建议Javamelody plugin Grails的。
我可以在过滤器中存储状态吗?例如,我可以将时间存储在“之前”,并在“之后”使用? – 2014-10-02 22:38:44
你当然可以。您可以将其添加到参数映射,请求范围,闪存范围,任意数量的方式。例如。在'request._timeBeforeRequest = System.currentTimeMillis()'之前,我链接到的博客帖子中有一个例子。 – 2014-10-02 22:40:08
更新了我的答案中的示例,其中包括显示执行控制器操作的总时间。 – 2014-10-02 22:51:53
apache AB帮助非常大。您可以使用一个并发性和一个请求来进行ab测试,以显示需要的时间。我还会建议一个名为“New Relic”的工具。非常适合测试并显示请求和瓶颈的时间。
- 1. 获取请求中的参数可能需要多长时间?
- 2. GC需要多长时间?
- 3. 需要多长时间才能打开一个文件
- 4. 找出需要多少时间做一个AJAX请求
- 5. 每个请求都需要执行SetAuthCookie
- 6. Windows XP中的每个线程时间片需要多长时间?
- 7. 有没有办法找出websphere处理请求需要多长时间
- 8. Glibc需要多长时间来编译?
- 9. Compact Framework和JIT。需要多长时间
- 10. 执行循环需要多长时间?
- 11. 校验需要多长时间?
- 12. 制作rabbitmq需要多长时间?
- 13. 合同处理需要多长时间?
- 14. Unix猫命令需要多长时间?
- 15. CreateThread需要执行多长时间?
- 16. 使用TDD需要多长时间?
- 17. 密码认证需要多长时间?
- 18. 执行脚本需要多长时间?
- 19. 需要多长时间学习backbone.js
- 20. SHA256散列需要多长时间?
- 21. 如何在每个请求需要很长时间才能完成时扩展tcp服务器?
- 22. ISession每个请求(只在必要时)
- 23. 每三个时间,打印此
- 24. grails中每个请求的缓存数
- 25. NSHost需要很长时间
- 26. presentRenderbuffer:GL_RENDERBUFFER_OES需要很长时间
- 27. MySQL的 - 需要长时间
- 28. HTTPURLConnection.getInputStream()需要很长时间?
- 29. 当长时间轮询时,为什么我的其他请求需要这么长时间?
- 30. 当页面需要太长的响应时间时urllib请求失败
对于快速而简单的事情,你看了一下Profiler插件吗? http://grails.org/plugin/profiler – 2014-10-02 22:30:25