struts+spring+hb启动速度好慢,如何改善启动速度

javafan80130 2006-07-14 05:54:36

各位,现在开发的一个大项目

开发环境是 myeclipse+eclipse,用tomcat作为测试服务器

但是在启动服务器时,感觉好慢,从开始启动到启动完毕,大概要1分多钟。

项目大概有10个spring配置文件,100个hbm.xml文件,外加10个action-servlet.xml。

在网上查了好久,不知有什么办法能加快启动速度?这样能大大提高开发效率。

谢谢,请问有什么优化措施?不胜感谢
...全文
573 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
javafan80130 2006-07-18
  • 打赏
  • 举报
回复
仔细看了spring的源代码,发现主要是spring的beans,默认default-lazy-init为false,导致在启动时候,会默认加载整个对象实例图,导致速度慢

把beans的default-lazy-init改为true的话,spring在启动的时候并没有真正实例化对象,而只是用一个代理来实现。当真正需要调用该类的时候,才会去实例化。更重要的是spring的实例化对象效率是不高的,需要花费很多时间。这样在运行期间第一次点页面的时候,会加载一部分需要的beans,所以稍微慢2-3秒钟,但是这相对于一次性加载花费的50秒钟要轻松很多
sd_lichangyou 2006-07-18
  • 打赏
  • 举报
回复
解决后跟大家分享一下吧,怎么解决的
javafan80130 2006-07-18
  • 打赏
  • 举报
回复
现在启动速度降为10秒了,大大提高开发效率

因为开发团队10个人,每个人每次启动节省40秒。

假如在开发阶段,由于需要频繁调试,一个人一天启动50次,那么一个人一天节省2000秒=33分钟,10个人就是330分钟。也就是6个小时,多么客观的数字啊!
javafan80130 2006-07-18
  • 打赏
  • 举报
回复
谢谢各位,问题解决了

明天结帖
javafan80130 2006-07-18
  • 打赏
  • 举报
回复
仔细跟踪了一下

发现hibernate解释hbm的时间不是问题,只有2秒钟

但是spring解释那些配置文件,竟然花50秒钟,真是夸张
javafan80130 2006-07-17
  • 打赏
  • 举报
回复
大家帮忙顶一下!

启动时间慢确实影响开发效率


hidi7211 2006-07-17
  • 打赏
  • 举报
回复
如果你在server.xml中配置了多个服务的话,你可以在别的服务不用的时候注掉.
<Context ....
..
</Context >
javafan80130 2006-07-17
  • 打赏
  • 举报
回复
谢谢各位。

不过我的日志已经调到比较高的等级了,请看如下:

log4j.rootLogger=ERROR,A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
forestandriver23 2006-07-17
  • 打赏
  • 举报
回复
应该是Log的问题,不然不会这么慢。调整一下log4j的输出等级。
wangx1949 2006-07-17
  • 打赏
  • 举报
回复
改善log4j,把不必要的信息都去掉
我一般只留sql和出错信息
aChinese 2006-07-17
  • 打赏
  • 举报
回复
你是不是把日志信息都输出了?
本来加载100个培植文件也不会很慢,可是往屏幕上写100条信息,那就慢了, 毕竟显示输出是IO操作.
water2004 2006-07-16
  • 打赏
  • 举报
回复
我们的系统更慢,也是spring struts hibernate。不过系统大一点。启动要2分钟左右。晕死了。测出是spring容器初始化加载的时候耗的时间,hibernate集成到spring里头。但是struts并没有放到spring里。郁闷。有没有好的建议阿。
vlinux 2006-07-15
  • 打赏
  • 举报
回复
不会是机器配置问题吧~~ ^-^
你是不是把Hibernate的启动代码添加到了Struts插件中去了?让Struts运行的时候自动加载Hibernate,这样在启动的时候是有点慢的,但是运行过程中就不用加载Hibernate的hbm了。不过就算算上了Hibernate的启动时间,也不至于要1分多吧~~
javafan80130 2006-07-15
  • 打赏
  • 举报
回复
我们的项目是的struts Action是spring管理的,因此,需要在struts-config.xml添加插件

我用秒表算了时间,的确需要55秒。

不知道大家有没什么优化措施
javafan80130 2006-07-15
  • 打赏
  • 举报
回复
UP

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧