| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jopen
11年前发布

我眼中的 性能劣化、优化的曲线

我眼中的 性能劣化、优化的曲线

        性能劣化

        随着代码写得越来越烂,程序运行时数据库操作更多、IO 阻塞等待跟过、不必要的对象创建、GC 回收更频繁,线程的上下文切换也更多,开销越来越多,所有因素综合起来,程序运行更慢,响应延迟加大。

        当到达临界点的时候,压垮骆驼的最后一根稻草出现了,系统直接崩溃。

        坏东西、副作用是会累积的。

        性能优化

我眼中的 性能劣化、优化的曲线

        代码的实现一直保持良好,不断通过合并查询等措施减少数据库操作,通过优化 SQL 语句缩短了单次数据库操作的时间,通过更好的日志记录方式减少 IO 操作,减少 IO 阻塞等待的时间,进而又可以减少线程切换的次数,通过避免不必要的对象创建,可以提升代码的执行速度,还可以减少 GC 的次数,种种优化效果综合起来的结果就是程序运行稳定,响应时间缩短。

        从业务实现的角度进行优化的效果是很明显的。

        当然,到达临界点之后,也就是没法从业务实现的方式上优化性能的时候,只能通过更底层、更细微的优化手段进行优化,比如 JVM 参数、系统参数调优等,这些措施带来的效果都是不怎么明显的。

        比如,业务实现减少一次数据库操作,至少可以减少 10ms 的延迟,但要在更底层的地方得到 10ms 的优化效果应该是很困难的。

        正面的作用也是可以累积的,只不过幅度是很缓慢的,且达到一定程度就很难再继续提升了。

        作为开发人员,应该重视每一个细节。

来自: coderbee.net