【发布时间】:2011-05-23 22:20:06
【问题描述】:
我正在开发一个 Web 应用程序(使用 JBoss 和 Icefaces),它使用 Servlet 创建 Excel 或 PDF 文件并将其发送到浏览器。
但我在调用 servlet 后遇到了性能问题,导致浏览器的 CPU 消耗一直很高 (~50%)。不同机器上的 Firefox 和 Internet Explorer 中的 Testet。在调用 servlet 并保持高位(直到我关闭浏览器或重新加载页面)后,高 CPU 使用率会出现一点延迟(半分钟)。 是下载创建的文件还是直接打开都没有区别。
我不知道这是怎么发生的......
有没有办法分析/调试浏览器以找出导致cpu消耗的原因?
更新:
我发现这肯定与 Icefaces webapp 有关。当我用在新窗口中打开 servlet(使用 window.open)的 javascript 调用替换我的 servlet 的直接 html 链接时,我可以毫无问题地下载创建的文件。
此外,当我在应用程序中注销时,CPU 使用率再次恢复正常!
更新:
好的,现在 Firebug 帮助了我:调用 servlet 后,我可以在 Firebug 控制台中看到每毫秒都有 XMLHtppRequests。现在我可以了解 CPU 使用率了!
POST http://localhost/webapp/block/receive-updated-views
来来去去。必须检查这个...
更新: 好的,我找到了一个 iceface thread (带有相应的 iceface jira 错误),但 bugtracker 指出这应该已经修复了......不知何故不适合我的情况!
【问题讨论】:
-
问题是否仅取决于 Excel 或 PDF 文档?也就是说,如果您从另一台没有 Java 或 Servlets 的服务器上提供服务?如果是这样,这个问题不需要[java]和[servlets]标签。
-
谢谢。它肯定与使用 servlet 和 icefaces 的 web 应用程序有关。我的 Excel 下载或浏览器没有任何其他问题。
标签: java performance jsf servlets icefaces