程序并发处理的能力
这个不是单个请求能体现出来的,单个请求请求时间可能会很快,但有一定并发量后对系统的平均响应时间影响很大,因此做好程序的并
发编程还是很重要的。可以采用以下一些增强程序并发处理能力的方法:
- 减少Synchronized关键字和对象锁的使用(尽量减少同步代码块),而使用JDK 1.5新增的并发容器类
- 降低变量的可见性,对变量进行线程封闭(如局部变量、ThreadLocal)
- 将不需要改变的变量都声明为final来增强变量的不变性
- 不要在耗时的方法或网络I/O中持有锁或开启事务
程序异步执行的能力
程序的异步执行能力往往对单个请求的响应时间影响很大,因此应尽量将能异步处理的操作做成异步任务,具体可以采用Spring的
@Async异步注解或Java自带的Future接口实现
JVM内存的使用
这点对性能的影响主要体现在系统的抗压能力上,我在进行系统压力测试的适合曾发现系统持续7000左右的访问量时就报内存耗尽
(OutOfMemory)的错误,后来发现是因为在并发量大时,因为系统创建的对象过多,堆内存全部耗尽,而垃圾回收机制来不急回收
造成的。因此,我们可以在对象不需要是手动把对它的引用设为null,让垃圾回收器尽快回收。当然,还可以进行一些常见的JVM调优
的方法,这里就不详细展开了。