我注意到我的应用程序有时很慢,所以我做了一些测试。 这是一个非常简单的网络应用程序。一个servlet获取一些参数而不是存储它们。 除了一件事,一切都很好。第一次获取参数需要很长时间。我试图获得哪个参数并不重要,但这是第一次非常慢。奇怪的是,这并不总是发生。有时第一次获取参数并不慢。
我的代码看起来像这样
request.getParameter("paramName");
request.getParameter("paramName2");
request.getParameter("paramName3");
获取“paramName”很慢。获得其他人非常快。
我的意思是:200-800毫秒
我的意思非常快:〜0毫秒
(在代码片段中,我没有编写性能测试,但我正在使用System.currentTimeMillis()
)
更新
我已将项目导出到.WAR文件中,并将其部署到Tomcat。一切安好。所以我认为这个问题与Eclipse有关。
答案 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和部署服务器时需要很多,而且听起来像交换。