Week7 总结
由于这周的课程理论偏多,总结起来,如果要画思维导图,则比较耗时,所以先暂时用文字总结,后面有时间再用思维导图进行梳理,这里主要先简单写一下总结心得。
1.要什么需要性能测试?
首先需要明白性能问题是什么,我们写的程序,如果有大数据压力的情况下,或者对未来会发生的一些场景预测会存在性能问题(如用户数量级,并发访问量级等),如导致用户访问页面缓慢,失效无响应等。
那么性能测试能让我们更加了解程序的瓶颈所在,因为如果没有数据的支持下,我们很难评估程序的能否抗得住大压力的读写访问。有了数据,就能清楚了解我们需要的进一步进行优化,包括硬件、操作系统、基础组件、以及我们的应用代码。
2.如何性能测试
性能测试的基础理论,并发、吞吐量、平均响应时间等。然后需要掌握一些常用性能测试的工具用法。往往性能测试的会针对一些整个系统全链路的压测,以及采用分层的思想进行压测。
任何性能测试都需要有个前提背景,在什么环境下(硬件环境、软件环境、系统版本等),预测期望值,实际估值。
3.性能优化
性能优化,则和性能测试直接相关,比如要优化什么,往往根据测的结果进行优化,再结合实际业务期望值,才能进行有意义的优化。不然就是瞎搞优化。比如在测试100并发用户访问网页响应时间为200ms,这个值就已经能满足业务需求,根本不需要优化。
4.CAS
各种锁,每个编程语言都会有各自的实现一套锁机制,在面临复杂的多进程多线程情况下,可以通过锁来保证业务数据的安全性。多的就不用说了,实践一遍就知道各种锁的用法和优缺点。
5.异步编程
提高应用吞吐量的普遍优化方法,采用异步编程,事件通知机制,实现并发的有效工具。akka是一种。不过没有实际用过,后面可以找个时间,具体用一下。
评论