看板java
标 题Re: [问题] Hibernate...让我伤脑筋的东西阿
发信站SayYA 资讯站 (Sat Mar 10 09:25:18 2007)
转信站ptt!ctu-reader!news.nctu!SayYa
俺乱出一下主意,
您可以去试着调看看
※ 引述《[email protected] (KO)》之铭言:
> 版大
> 其实, 单纯就下 sql 语法跟 O/R Mapping 工具转换
> 对於大型专案不是无法解决的问题
> 针对 sql 语法加上 index 即可解决这部份的瓶颈
> 现在我遇上最大的麻烦
> 是在 Web Server init 的时候, 必须 init-load Hibernate 的 class
1. 这部分改用 lazy load 模式看看
> 导致系统效能以及需求大量增加
> 根据实测,记忆体小余 1G 以下
> Web Server 连 init 都会失败 (outofmemory error)
> 结果回信 "Hibernate init 的时候记忆体要求太高, 导致 Web Server 当机"
> 我想知道有什麽样的方式可以避免这状况...找遍国外论坛没有 tuning 的方法
> 目前人少的状况已经是这样
> 我担心几百个人上线的时候, 会不会每五分钟就当机一次 >"<
2. 这部分试着在 read-only 的运算加生命周期较长的 cache
变动较高的部分先可以不要做没关系
http://www.hibernate.org/61.html
3. 不知您有没有调 jvm
预设的 gc 演算法是适用於小型的程式用的
http://java.sun.com/docs/hotspot/gc1.4.2/
以 sun jvm 为例
http://www.javaworld.com.tw/jute/post/view?bid=5&id=183909&sty=3&keywords=bbs
改用
-XX:+UseParallelGC -XX:ParallelGCThreads=5
平行化的GC方式 (ibm 好像都2 core?)
可以加速回收没用到的东西
4. 关於 coding 方面,如果是启动後还是记忆体吃紧
要查看看是不是产生太多用了就丢的物件
试着把他们放到 object pool 重复使用
5. connection pool (pool 一类)
一开始就设大一点,
大概 平均值 * 1.5 的数量先试看看噜
6. 其实不用等到上线就能测了 JMeter 等着你 :P
7. tempo 最近有写一点 note
http://www.pocketshark.com/blog/page/tempo?entry=bye_bye_criteria_query
--
※ Origin: SayYA 资讯站 <bbs.sayya.org>
◆ From: 218-161-127-199.dynamic.hinet.net