质量属性-性能

 

一、阅读目标:

阅读有关质量属性的书籍需要了解的是
质量属性的概念, 相关的战术,战术应用实例(之前项目是否设计)

 

二、改善性能的各个方面:

浏览器缓存,页面压缩,

减少cookie传输,

异步,高并发处理请求,

多线程(代码优化),内存管理,

SQL优化,具体指标是否达到期待值,

负载是否均衡,

性能优化,前端优化,服务器优化,存储优化(硬盘,B+树,RAID,HDFS)

 

三、战术:

提高性能的方法(性能的战术):

三种策略类别(Three tactic categories ):

资源需求(resource demand),资源管理(resource management),资源仲裁(resource arbitration)。

 

资源需求策略:

提高计算效率(改进算法),减少计算开销(旁路引用),管理事件率(降低采样频率),绑定执行次数(限制迭代次数),绑定队列大小。

1.提高计算效率。处理事件或消息中的一个步骤就是应用某个算法。改进在关键的地方所使用的算法将减少等待时间。有时可以用一种资源换取另一种资源。例如,可以把仲裁者数据保存在存储库中,也可以重新生成,这取决于时间和空间资源的可用性。该战术通常用在处理器上,但用在其他资源上也是有效的,如磁盘。

2. 减少计算开销。如果没有资源请求,就可以减少处理需求。

减少等待时间的另外一个战术就是减少所处理事件的数量。可以用一下方式进行:

3. 管理事件率。如果可以降低监视环境变量处的取样频率,就可以减少需求。如果系统进行了超量设计的话,这样做是不可行的,其他时候使用不必要的高采样率来建立多个流之间的和谐周期。也就说,某个流或事件被过采样,以使他们可以被同步化。

4,. 控制采样频率。如果没有对外部生成的事件的到达进行控制,则可以用一个较低的频率对排队的请求进行采样,这样可能会导致请求的丢失。

用于减少或管理需求的其他战术包括控制资源的使用。

5. 限制执行时间。限制用多少执行时间对事件做出响应。有时这样做有意义,有时没有意义。对于迭代、依赖于数据的算法,限制迭代的数量就是限制执行时间的一个方法。

6. 限制队列的大小。这控制了排成队列到达事件的最大数量,因此控制了用来处理到达事件的资源。

 

资源管理策略:

引入并发性,维护数据或计算的多个副本(客户端缓存),增加可用资源。

1. 引入并发。如果可以并行处理,就可以减少闭锁时间。可以通过在不同的线程上处理不同的事件流或者创建额外的线程来处理不同的活动集来引入并发。引入并发后,适当地把线程分配给资源(负载均衡)非常重要,以尽可能利用并发。

2,. 维持数据或计算的多个副本。客户机—服务器模式中的客户机是计算的副本。使用副本的目的是减少在中央服务器上进行所有的计算时出现的争用。高速缓存的数据通常是现有数据的一个副本,因此使用副本一致和同步就变成了系统必须承担的责任。

3.  增加可用资源。速度更快的处理器、额外的处理器、额外的内存以及速度更快的网络都可以减少等待时间。在选择资源时,通常会考虑成本,但增加资源绝对也是一个减少等待时间的战术。

 

资源仲裁策略(调度策略):

先进先出,固定优先级调度(基于语义重要性、期限单调或速率单调),动态优先级调度(循环调度,最早的最后期限优先),静态调度(先发制人点和资源分配顺序脱机确定)。

1. 先进先出。FIFO队列同等看待对资源的所有请求,并依次对其进行处理。在FIFO队列中,一个请求可能被另一个需要很长时间来生成响应的请求阻止。只有所有请求优先级都是相同的,这就不是一个问题;但如果一些请求的优先级高于其他请求的优先级,就存在这个问题。

2. 固定优先级调度。固定优先级调度为每个请求资源的源分配一个特定的优先级,并按该优先级顺序分配资源。该策略能够保证为优先级较高的请求提供更好的服务,但是,对一些优先级较低的请求来说,肯能要等待很长的时间才能得到服务,因为它前面有很多优先级较高的请求。

 

四、战术实例

改善性能,通过我个人了解来看,

比如一个项目在执行一个功能的时候,减少系统的响应时间就是改善性能;

在写一个程序进行计算的时候,通过使用优化的算法,可以减少程序的执行时间;

Javaweb在前端传输数据的时候,使用异步传输数据,可以减少资源的消耗;

SQL语句进行优化,减少查询的时间;

 

借鉴 https://www.cnblogs.com/yishaui/p/12417864.html

 

posted @ 2023-03-02 17:50  kuaiquxie  阅读(20)  评论(0编辑  收藏  举报