简而言之,
1.IO操作。
包括的很多,
(1)数据库IO(不过这个有连接池了,不用太操心)
(2)文件IO,这个很重要,一些配置文件,如XML,等,多次操作,尤其是不小心,循环中多次操作,时间大大增加
解决办法,一次读到内存,处处使用
(3)网络IO,这个一般有超时控制,应该也没事(或者会有很大问题?总之遇到的少)
(4)对象IO,这个就比较牵强了,不过本质上,我把他归做IO一族,因为他影响到性能也是频繁的new所导致,会有内存分配等操作,
解决办法,如线程池之类的池技术,当然,只有说执行时间比较短,短到不是启动,结束时间的N倍时,效果最明显
2.不合理的循环,
这个就考验算法和数据结构的合理性了,不多说,在于积累
3.static的大集合对象,长时间留在内存中,这个就很灵活,需要视情况而定,
解决办法,根据需要,动态增减。
4.细节上的,比如hashMap怎么放元素最优(1.申请时指定大小2.put时不要产生所谓的哈希链?)
备注:重中之重,时间上提升:IO操作那里。内存泄露,那就是第三个了
第二个对时间和内存都有影响
至于第四个,代码编写时,多注意就好了,性能优化时,不管也可以。