WEB项目优化大谈论

vkqiang 2009-01-16 01:28:09
笔者接手了一个很恶心的项目,原班人马基本已走完,原来的程序都是只要实现功能即可,根本没有考虑性能问题,写个分页算出总数就用了findAll(把所有数据提出来),返回个List.size()得出总数,还有别的就不说了。运行的几个项目都出现了死机,只好来优化,下面是笔者用到的优化方法,想让高手不怜赐教,大家一起来谈论一下网站优化的方法。


1.用Hibernate操作数据库时一定要本着用多少取多少的原则,取出尽可能少的数据来完成所需要的操作。避免使用findAll方法(即把所有的数据都提出),就算数据比较少,也要避免。
2.对页面变动不是太频繁,实时性不高的页面添加缓存,或直接生成静态页面,让随后的访问直接访问静态页面。
3.服务器方面:有时程序优化很好,但服务器的内存使用没有设置有时也会影响项目的性能。
Tomcat6.0:
Tomcat分配给JVM的内存默认最大为64M左右,可以根据需要设置的高点,设置方法如下:
通过startup.bat启动的可以在catalina.bat文件中添加SET CATALINA_OPTS= -Xms64m -Xmx512m(其中Xms为启动时分配的内存大小,Xmx为内存使用的最大值);重启即可。

JBossWeb2.0:
JBossWeb分配给JVM的内存默认最大为256M左右
安装为服务的查找注册表中HKEY_LOCAL_MACHINE\SOFTWARE\JBoss\JBoss Web 2\项目名\Parameters\Java下的JvmMs(启动时分配的内存大小)和JvmMx(最大内存)两个属性设置为需要的值,重启服务即可。
注意:可以设置的最大JVM内存和JVM版本以及操作系统版本有关,一般Windows下1200-1500M左右,Linux下最大能到2600M;
具体可以使用命令 java -XmxXXXXM -version 来进行测试,然后逐渐的增大XXXX的值,如果执行正常就表示指定的内存大小可用,否则会打印错误信息。

其它类型的服务器请参考相关文档进行设置,在此只列出了笔者使用的服务器。
...全文
404 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
vkqiang 2009-01-23
  • 打赏
  • 举报
回复
今天放假了,呵呵
vkqiang 2009-01-23
  • 打赏
  • 举报
回复
结贴给分
XJQ_1 2009-01-22
  • 打赏
  • 举报
回复
关注
xhs_lh04 2009-01-22
  • 打赏
  • 举报
回复
学习.帮顶
APOLLO_TS 2009-01-22
  • 打赏
  • 举报
回复
1. 尽可能的减少 HTTP 的请求数
2. 使用 CDN(Content Delivery Network)
3. 添加 Expires 头(或者 Cache-control )
4. Gzip 组件 //现在你能做的就这个了!!!
5. 将 CSS 样式放在页面的上方
6. 将脚本移动到底部(包括内联的)
7. 避免使用 CSS 中的 Expressions
8. 将 JavaScript 和 CSS 独立成外部文件
9. 减少 DNS 查询
10. 压缩 JavaScript 和 CSS (包括内联的)
11. 避免重定向
12. 移除重复的脚本
13. 配置实体标签(ETags)
14. 使 AJAX 缓存
15 Hibernate绑定连接池。------------- //session工厂类自己重写。
16 findAll(参数加一个)-------------- //全局置换获得主键个数
17 table---》div
18 SQL
19 html 标头一概采用W3C
20 网页图片
21 mysql开启大批传输设置,oracle 增大SGA。
22 累了!!不写了!!!
hellking 2009-01-22
  • 打赏
  • 举报
回复
性能是设计应用时就考虑在内的,事后优化不能把土鸡变凤凰。

对于已经完工的应用,这种既省力又不花钱来提高性能的捷径存在的可能性极小。毕竟质量是设计出来的,不是测试出来的。
vkqiang 2009-01-22
  • 打赏
  • 举报
回复
14楼辛苦了,呵呵,你真强!
iamfafa 2009-01-21
  • 打赏
  • 举报
回复
要优化的地方是很多的

你得一步一步来,
1。应用服务器稳定
2。优化sql语句
3。优化程序
twals 2009-01-20
  • 打赏
  • 举报
回复
帮顶
noenoughmemory 2009-01-20
  • 打赏
  • 举报
回复
帮顶
sdqd321 2009-01-20
  • 打赏
  • 举报
回复
不懂,帮顶
noenoughmemory 2009-01-20
  • 打赏
  • 举报
回复
不懂,帮顶
vkqiang 2009-01-20
  • 打赏
  • 举报
回复
今天又找到了一个优化的小技巧:
Tomcat或JBoss的虚拟目录<Context>中的reloadable属性在生产环境下设置为false,因为设置为true需要额外的消耗(Tomcat或JBoss要定时检查一下是否有内容改变,来进行自动加裁)

优化吧,小处也不能放过啊!

人气不旺,再顶,不要沉啊!
vkqiang 2009-01-20
  • 打赏
  • 举报
回复
6楼提议不错,但需要改动整个项目,这个项目是jsp写的,如果用SSI + FreeMark,等于说要重新写这个项目,成本太高了。
高手有无在不需要改动当前项目太多的方法来实现静态化没?说来听听!



不要沉!
.
.
.
.
.
.
.
.
hellking 2009-01-19
  • 打赏
  • 举报
回复
SSI + FreeMark
vkqiang 2009-01-16
  • 打赏
  • 举报
回复
随便再问一下大家,大家有没有比较好的生成静态页面技术,分享一下。

人气还是不旺啊,有分没人接吗?
dai2jiang 2009-01-16
  • 打赏
  • 举报
回复
ding
vkqiang 2009-01-16
  • 打赏
  • 举报
回复
人气不旺啊,自己顶一下!
unixlinuxsys 2009-01-16
  • 打赏
  • 举报
回复
都可以
wsj1983920 2009-01-16
  • 打赏
  • 举报
回复
up

25,980

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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