jsp在服务器上被转为java代码运行的吧,理论上不应该一样?
解决方案 »
- 快被这个问题搞疯了,tomcat在window2003下,要怎样梆定域名呀,在window2003 有iis服务器,给位高手进来指点一下小弟吧,我24在线等
- CAS下如何退出系统
- google app engine 插入问题 急!@~~~~
- Web Severvice 急!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- java电子书免费下载,更新
- jsp简单问题,如何获得<option value="1">上海市</option>其中的“上海市”字段?
- tomcat的奇怪问题
- freemarker模板中如何获取顶级的MAP
- 调用自己编写的一个bean结果提示找不到类
- <jsp:include>的问题~~很着急的,谁先帮我解决了,我就给谁分 100
- myelipse2017设置虚拟路径
- 在JSP中导入JavaBean为什么出现找不到方法的错误
就像修改Jsp页面时tomcat不自动重启,修改java代码时会重启那样?
这个问题比较小白,请息怒
就像修改Jsp页面时tomcat不自动重启,修改java代码时会重启那样?
这个问题比较小白,请息怒只有第一次访问该Jsp页面会预处理和重新编译吧?第二次访问应该就一样了。
可是同一个页面刷新多次,我把时间打印出来对比一下,耗时60多s,几次只相差几百ms,相同代码放在Java代码里运行能缩短1/3时间,大约40s。
long start = System.currentTimeMillis();
for(int i = 0; i < 100000; i++){
s=s+i;
}
long end = System.currentTimeMillis();
System.out.println("time="+ (end-start));这段代码在jsp中执行花费64秒,在main方法里花费41秒。这是我的机器
实际开发过程中用公司的机器甚至放到服务器上也有明显区别,能从3分钟降到1分40秒。
jsp -> servlet -> class
java -> class
而且第一次打开jsp需要这一步,但第二次打开应该不用了。
不知为何
long start = System.currentTimeMillis();
for(int i = 0; i < 100000; i++){
s=s+i;
}
long end = System.currentTimeMillis();
System.out.println("time="+ (end-start));这段代码在jsp中执行花费64秒,在main方法里花费41秒。这是我的机器
实际开发过程中用公司的机器甚至放到服务器上也有明显区别,能从3分钟降到1分40秒。个人觉得这个应该是你的环境问题,main方法毕竟是简单的单线程环境,实际线上确实多线程环境,线程切换也会影响代码实际运行速度,你可以弄一个简单的web项目,这样才能尽量排除干扰
还有能吐槽下你的机器么...我代码跟你一模一样,只需要12秒,你要60秒
long start = System.currentTimeMillis();
for(int i = 0; i < 100000; i++){
s=s+i;
}
long end = System.currentTimeMillis();
System.out.println("time="+ (end-start));这段代码在jsp中执行花费64秒,在main方法里花费41秒。这是我的机器
实际开发过程中用公司的机器甚至放到服务器上也有明显区别,能从3分钟降到1分40秒。个人觉得这个应该是你的环境问题,main方法毕竟是简单的单线程环境,实际线上确实多线程环境,线程切换也会影响代码实际运行速度,你可以弄一个简单的web项目,这样才能尽量排除干扰
还有能吐槽下你的机器么...我代码跟你一模一样,只需要12秒,你要60秒
把这段代码从jsp放到action里就能从3mins提高到1min40s。生产上这个action就是跳转到jsp之前的action。应该能排除main方法过于简单的可能
long start = System.currentTimeMillis();
for(int i = 0; i < 100000; i++){
s=s+i;
}
long end = System.currentTimeMillis();
System.out.println("time="+ (end-start));这段代码在jsp中执行花费64秒,在main方法里花费41秒。这是我的机器
实际开发过程中用公司的机器甚至放到服务器上也有明显区别,能从3分钟降到1分40秒。个人觉得这个应该是你的环境问题,main方法毕竟是简单的单线程环境,实际线上确实多线程环境,线程切换也会影响代码实际运行速度,你可以弄一个简单的web项目,这样才能尽量排除干扰
还有能吐槽下你的机器么...我代码跟你一模一样,只需要12秒,你要60秒
把这段代码从jsp放到action里就能从3mins提高到1min40s。生产上这个action就是跳转到jsp之前的action。应该能排除main方法过于简单的可能
或许跟采用的容器有关,我用的jetty,有时候jsp跑的速度还快一些,但你的代码我跑真只要十多秒,个人觉得这个真不太像是机器性能的问题,我CPU E3V5,你CPU应该不会差这么多吧
long start = System.currentTimeMillis();
for(int i = 0; i < 100000; i++){
s=s+i;
}
long end = System.currentTimeMillis();
System.out.println("time="+ (end-start));这段代码在jsp中执行花费64秒,在main方法里花费41秒。这是我的机器
实际开发过程中用公司的机器甚至放到服务器上也有明显区别,能从3分钟降到1分40秒。个人觉得这个应该是你的环境问题,main方法毕竟是简单的单线程环境,实际线上确实多线程环境,线程切换也会影响代码实际运行速度,你可以弄一个简单的web项目,这样才能尽量排除干扰
还有能吐槽下你的机器么...我代码跟你一模一样,只需要12秒,你要60秒
把这段代码从jsp放到action里就能从3mins提高到1min40s。生产上这个action就是跳转到jsp之前的action。应该能排除main方法过于简单的可能
或许跟采用的容器有关,我用的jetty,有时候jsp跑的速度还快一些,但你的代码我跑真只要十多秒,个人觉得这个真不太像是机器性能的问题,我CPU E3V5,你CPU应该不会差这么多吧测试环境E5V2,在action里和在jsp里有明显区别。3min和1min40s就是在这个环境测的。代码里不仅有string拼接,还有其他的操作。和你的机器跑出来有区别应该正常。我比较关心的是同一段代码放在两个位置区别很大。
如果有差别,应该是页面第一次被访问时会有点慢。不过现在的PC机都比较快了,再加上IDE的支持,基本上感觉不到这点时间上的延迟了。最后,我们没必要去纠结这么点运行效率的差异。真的一个系统开发出来,有这么一点点效率损失其实没太大的影响。毕竟,一个页面如果0.1秒生成和0.11秒生成,人基本上感觉不出来。想提高Java应用程序的运行效率,关注的重点不在这些小问题上。
java -> class