3

我注意到我的应用程序有时很慢,所以我做了一些测试。这是一个非常简单的网络应用程序。一个 servlet 获取一些参数而不是存储它们。一切都很好,除了一件事。第一次获取参数耗时太长。我尝试获取哪个参数并不重要,但是第一次它很慢。奇怪的是,这并不总是发生。有时第一次获取参数并不慢。

我的代码看起来像这样

request.getParameter("paramName");
request.getParameter("paramName2");
request.getParameter("paramName3");

获取“paramName”很慢。获得其他人非常快。

慢是指:200-800 毫秒 非常快是指:~0 毫秒(在代码片段中,我没有编写性能测试,但我正在使用System.currentTimeMillis()

更新

我已将项目导出到 .WAR 文件中,并将其部署到 Tomcat。一切安好。所以我认为这个问题与Eclipse或其他东西有关。

4

3 回答 3

2

我怀疑参数可能会被延迟解析 - 当您第一次请求参数时,它可能会解析所有内容,并将它们存储起来以便以后进行有效访问。

但是,200 毫秒听起来像是一个非常长的时间……这是在调试器下运行的时候吗?

当然,这完全取决于您的 servlet 容器。

于 2010-04-03T12:06:12.950 回答
1

听起来像是Eclipse 的内置网络浏览器中的一个错误,它没有Content-Length正确发送标头。我无法从经验中判断,因为我从未认真使用过它。我总是将项目部署到集成的 Tomcat 或 Glassfish,启动它,然后在真正的网络浏览器(Firefox、Chrome、Safari、IE 等,您独立于 Eclipse 运行)中打开页面。这样做的主要好处是您可以使用任何浏览器的插件和插件,这些插件和插件可以极大地简化开发,例如 Firebug 和 consorts。

如果您坚持在 Eclipse 中使用 webbrowser,请尝试通过转到Window > Web Browser并选择Internal Web Browser以外的方式更改使用的 webbrowser 。

于 2010-04-04T23:09:46.987 回答
0

你有足够的内存吗?在使用 Eclipse 和部署服务器时,您需要很多东西,而且这听起来像是交换。

于 2010-04-03T12:23:08.750 回答