关于软件性能的一些point

这是日更的第50天,不想随便写点口水话,但是也确实是没有什么精力去学习,所以又是用自己的存货充数的一天,当然这样充数的机会也不会有太多了,发现自己的库存已经开始不足了。

今天是来记录一些关于性能的理论知识。

什么是软件性能

软件性能是一种非常重要的非功能特性,表明了软件系统对时间及时性及资源经济性的要求。
对于一个软件系统,运行时间执行速度越快、占用系统存储资源及其他资源越少,则软件性能越好。

性能指标

  1. 响应时间:客户端响应时间+网络响应时间+服务器端响应时间
    • 客户端响应时间:客户端在构建请求和展现交易结果时所耗费的时间。
    • 网络响应时间:用户发送一个请求需要时间,系统处理完后返回给用户也需要时间。这是网络硬件传输交易请求和交易结果所耗费的时间。
    • 服务器端响应时间:当系统得到请求后会对请求进行处理并将结果返回。这个部分是我们唯一可控的,就是将系统的处理请求的时间缩到最短。(毕竟用户使用的网络带宽不一)
  2. 并发用户数:某一时刻同时向服务器发送请求的用户数量
  3. 吞吐量:软件系统在每单位时间内能处理多少个事务/请求/单位数据
  4. 资源使用率:CPU占用率、内存使用率、磁盘I/O、网络I/O

性能缺陷表现

  • 响应时间长
  • 系统不稳定
  • 占用较多资源
  • 页面报错

缺陷分类

硬件

  • 磁盘空间:磁盘空间不足或磁盘故障会导致服务不可用 。
  • CPU:CPU的核心功能是解释计算机指令以及处理数据,性能主要体现在其运行程序的速度上。
  • IO读写速度:内存作用是用于暂时存放CPU中的运算数据,以及与外部存储器交换的数据,内存不足会导致程序崩溃或限制程序的数据处理速度。
  • 内存:主要考虑数据输入/输出处理时的读写速度。
  • 其它...

数据库

  • 索引:索引的存在就像一个标签目录一样,在执行数据库操作时提供更为快速的执行效率,减少磁盘IO操作和执行的数据库系统时间。
  • 锁:为了保证事务的原子性和隔离性,有了锁的存在,但有时候由于某些原因造成的表锁,也是性能瓶颈的一种表现。
  • 慢查询:慢查询会导致数据库操作时间变长,增加IO读写以及引起资源竞争等问题。
  • 数据量:数据量不同,对其进行操作时的性能表现也是不同的。
  • 其它...

网络

  • 带宽:高并发情况下,如果带宽不足,可能会导致网络资源竞争,超时等情况。
  • 延时:延时的值越大,对系统性能表现影响越大(比如游戏)。
  • 丢包:数据包如果丢失,则可能造成报错或异常的情况。(TCP协议丢包会重传。)
  • 其它...

中间件

  • 负载均衡:如果负载均衡不够“均衡”,在大数量的冲击下,容易导致某些服务的异常或者挂起。
  • 缓存:缓存可减少请求响应过程中的传输时间,但有时在高并发情况下,如果缓存失效而导致缓存穿透,会对服务端带来很大的压力。
  • 线程池:线程池配置太小,很容易被使用完,太大的话浪费资源。
  • 最大连接数:连接数太少容易导致队列等待、超时,连接数太多则浪费了系统资源。
  • 其它...

人们常说21天养成一个习惯,这已经是50天了,日更确实是成为了习惯,只不过有的时候没有那么多动力或者知识储备可以去更新,真是让人有些忧伤。

今天也是很累的一天,假期余额还有3天,大家继续愉快~

自我记录,有错误欢迎指正~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容