0

(ACF9)

除非我遗漏了一个选项,否则“记录慢速页面超过 [n] 秒”设置对于基于前端控制器的站点(例如,Model-Glue、FW/1、Fusebox、Mach-II、 ETC。)。

例如,在 Mura/Framework-One 站点中,我最终得到:

"Warning","jrpp-186","04/25/13","15:26:36",,"Thread: jrpp-186, processing template: /home/mysite/public_html_cms/wwwroot/index.cfm, completed in 11 seconds, exceeding the 10 second warning limit"
"Warning","jrpp-196","04/25/13","15:27:11",,"Thread: jrpp-196, processing template: /home/mysite/public_html_cms/wwwroot/index.cfm, completed in 59 seconds, exceeding the 10 second warning limit"
"Warning","jrpp-214","04/25/13","15:28:56",,"Thread: jrpp-214, processing template: /home/mysite/public_html_cms/wwwroot/index.cfm, completed in 32 seconds, exceeding the 10 second warning limit"
"Warning","jrpp-134","04/25/13","15:31:53",,"Thread: jrpp-134, processing template: /home/mysite/public_html_cms/wwwroot/index.cfm, completed in 11 seconds, exceeding the 10 second warning limit"

有什么方法可以在其中获取查询字符串或发布详细信息,还是有其他方法可以获取我想要的内容?

4

3 回答 3

6

对于任何耗时超过 10 秒的请求,您可以轻松地将一些日志记录添加到您的应用程序中。

在 onRequestStart() 中:

    request.startTime = getTickCount();

在 onRequestEnd() 中:

    request.endTime = getTickCount();

    if (request.endTime - request.startTime > 10000){
        writeLog(cgi.QUERY_STRING);
    }
于 2013-04-25T22:06:41.983 回答
1

如果您正在编写 Mach-II、FW/1 或 ColdBox 应用程序,编写一个在每个请求上运行的“插件”是微不足道的,它捕获请求中传递的 URL 或 FORM 变量并将其存储在一个简单的数据库表中或日志文件。(您甚至可以捕获 session.userID 或 IP 地址或您可能需要的任何内容。)如果您要捕获到数据库表,您可能不希望任何索引来优化性能,您需要轮换该表以便您不会尝试在具有数千万行的表上进行高速插入。

  • 在 Mach-II 中,您将编写一个插件。
  • 在 FW/1 中,您将调用一个控制器来处理这个问题,并将其放入 application.cfc 中的 setupRequest() 中。
  • 在 ColdBox 中,您将编写一个拦截器。
于 2013-04-26T12:03:09.303 回答
0

这个想法是日志只是告诉您哪些页面 arw xonsostently slow sp ypu 可以进行您自己的性能调整。打开调试以获取更多详细信息。

于 2013-04-26T07:40:25.060 回答