我希望在控制器中打印每個請求,請求開始時,結束時以及過程有多長時間。我是否需要將這些代碼分別添加到每個請求中或者是否有任何通用的方法來執行此操作?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