java系统性能改进

      现象:系统中如果出现10万个以上的对象从数据库中加载,将耗时1小时左右

     分析:开始以为是加载的时候使用反射机制,根据类的名称使用Class.foName(),然后使用newInstance()方法带来了性能的下降,于是将Class.foName产生的Class缓存,但是性能没有较好的提升,查资料发现Class.foName已经使用了缓存,后来比较了用clone()方法代替newInstance方法,经过测试发现clone方法可以提高50%-1000%的速度。但是使用克隆方法对代码的改动比较大,因此将此建议放到下一版中进行。

    后来跟踪代码执行过程发现在加载对象时,每一对象都要到数据库查询一次,因此很耗时,所以在服务器启动时加了一个数据库对象表的缓存,将所有的数据库信息通过一个查询一次取到系统缓存,然后才开始加载,最后发现此中方法的性能可以提高10倍左右。

   结论:在提高系统性能时,首要考察的地方是执行最多次的方法或函数,找到可能出现的性能瓶颈,但是不能轻易下结论,需要用例测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值