Servlet请求getparameter的性能

时间:2010-04-03 12:02:41

标签: java eclipse servlets getparameter

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

我的代码看起来像这样

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

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

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

更新

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

3 个答案:

答案 0 :(得分:2)

我怀疑这些参数可能会被懒散地解析 - 当你第一次要求参数时,它可能会解析所有内容,将它们存储起来以便以后有效访问。

然而,200毫秒听起来好长时间......当你在调试器下运行时是这样吗?

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

答案 1 :(得分:1)

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

如果您坚持在Eclipse中使用webbrowser,请尝试通过转到 Window>更改所使用的webbrowser。 Web浏览器并选择内部Web浏览器以外的其他内容。

答案 2 :(得分:0)

你有足够的记忆吗?使用Eclipse和部署服务器时需要很多,而且听起来像交换。