读书笔记
文章平均质量分 81
性能调优
sysu_lluozh
这个作者很懒,什么都没留下…
展开
-
【测试之道】测试发展之路
一、测试团队面临的困局随着互联网的发展,持续集成及DevOps等软件工程方法的提出和普及,软件测试技术也发生了很大的变化。自动化测试、敏捷测试和测试左移等方法论被广泛应用于实践,研发团队对测试技术和测试团队有更高的期待。与此同时,测试团队也面临着不少的困难,其中具有普遍性的有:测试自动化难自动化测试程序编写成本高、执行成本高、维护成本高。测试的技术债在业务高速发展的过程中越积越多:一边修复老的用例,另一边出现新的失败用例一边补充自动化,另一边又因为项目的时间压力遗留了未自动化的用例一些可原创 2022-05-12 00:38:28 · 9164 阅读 · 0 评论 -
【并发编程的艺术】并发编程的挑战
并发编程的目的是为了程序运行得更快,但并不是启动更多线程就能让程序最大程度地并发执行在通过多线程执行任务让程序运行得更快将面临很多挑战一、上下文切换1.1 什么是上下文切换即使是单核CPU也支持多线程代码执行,CPU通过给每个线程分配CPU时间片来实现这个机制时间片CPU分配给各个线程的时间因为时间片非常短,所以CPU通过不断切换线程执行,我们感觉多个线程是同时执行的时间片一般是几十毫秒(ms)目的计算机通过计算时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务。但原创 2021-01-30 00:07:50 · 238 阅读 · 0 评论 -
【并发编程的艺术】Java内存模型
Java内存模型的基础并发编程模型的两个关键问题线程之间如何通信线程之间如何同步线程指的是并发执行的活动实体通信指的是线程之间以何种机制来交换信息线程之间的通信机制有两种:共享内存消息传递在共享内存的并发模型里,线程之间共享程序的公共状态,通过写-读内存中的公共状态进行隐式通信在消息传递的并发模型里,线程之间没有公共状态,线程之间必须通过发送消息来显式进行通信同步指的是程序中用于控制不同线程间操作发生相对顺序的机制...原创 2021-02-05 23:55:06 · 155 阅读 · 0 评论 -
【并发编程的艺术】并发机制原理
java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化成汇编指令在CPU上执行,Java中所使用的并发机制依赖于JVM的实现和CPU的指令更好的进行并发编程,需要深入了解Java并发机制的底层实现原理一、volatile的应用在多线程并发编程中synchronized和volatile都扮演着重要的角色volatile是轻量的synchronized,它在多处理开发中保证了共享变量的可见性。可见性指的是当一个线程修改一个共享变量时,另外一个线程能读到原创 2021-02-04 00:01:10 · 381 阅读 · 0 评论 -
【软件性能测试与调优实践】分析调优案例
同步锁减少同步锁的使用在多线程并发运行中,应该在保证线程安全的情况下,尽量少使用线程同步锁,因为线程同步对多线程并发运行的性能影响很大比如日志输出可以不要求实时同步,那么就可以把线程同步输出日志改为异步输出减少同步锁同步范围如果一定要使用线程同步锁,那么应该尽量减少线程同步的代码范围,只对必须保证线程安全的代码加线程同步锁分布式同步锁虽然在代码中可以使用同步锁保证线程安全,使数据库中不出现重复的脏数据,但是却影响了多线程并发时的性能此种线程安全只能适用单个应用服务器节点的部署情况,如果是分原创 2021-01-28 01:04:15 · 318 阅读 · 0 评论 -
【软件性能测试与调优实践】MySQL数据库调优
MySQL数据库的性能监控查看MySQL的连接数连接数指的是用户已经创建多少个连接运行线程数详情MySQL中执行SHOW PROCESSLIST命令输出数据库中运行着的线程数个数的详情SHOW PROCESSLIST查询结果SHOW PROCESSLIST默认情况下只显示前100条记录的详情,如果需要显示超过100条的所有记录,可以通过执行SHOW FULL PROCESSLIST命令来查看支持最大连接数show variables like 'max_connections'命令可以原创 2021-01-26 00:12:27 · 514 阅读 · 0 评论 -
【软件性能测试与调优实践】Java应用程序调优
Java应用程序的性能直接关系到服务的访问承载能力、大数据的数据处理量等等JVM基础JVM简介JVM是Java Virtual Machine(Java虚拟机)的英文缩写,是通过在实际计算机上仿真模拟各种计算机功能来实现的。Java编程语言通过使用Java虚拟机屏蔽了于具体操作系统平台相关的信息,保证了编译后的应用程序的平台兼容性Java虚拟机本质上可以认为是运行在操作系统上的一个程序、一个进程,Java虚拟机在启动后就开始执行保存在字节码文件中的指令...原创 2021-01-18 23:31:32 · 1103 阅读 · 0 评论 -
【软件性能测试与调优实践】应用中间件的性能分析与调优
中间件除了web中间件外最重要的就是应用中间件web中间件一般主要负责静态资源请求的处理和动态请求的转发,而动态请求一般都是由应用中间件来进行处理平时最常用的应用中间件就是Tomcat和WildFly,应用中间件作为操作系统和应用程序之间的桥梁,为处于其中的应用程序组件提供一个运行环境由于应用中间件处理的是动态请求,所以其性能好坏往往会直接影响系统的处理能力Tomcat的性能调优Tomcat的组件及工作原理Tomcat运行需要JDK(Java Development Kit,Java语言开发工具原创 2021-01-15 00:17:27 · 1521 阅读 · 0 评论 -
【软件性能测试与调优实践】web中间件的性能分析与调优
目前web中间件使用的最多的是Apache和Nginx,很多大型互联网公司都会使用这两种作为web中间件很多编程语言在进行开发时,会将Apache或者Nginx作为其绑定的固定组件,比如:用PHP语言进行web开发时,经常和Apache联系在一起,使得Apache称为了PHP在web开发时的一个标配Nginx不管在作为web静态资源访问管理,或者作为动态的请求代理,性能都是非常高效当然Nginx或者Apache有时候也会存在性能瓶颈,需要进行性能分析和调优以支持更高效的并发处理能力Nginx的性能原创 2021-01-13 00:21:49 · 1328 阅读 · 0 评论 -
【软件性能测试与调优实践】服务性能监控与分析
vmstat通过vmstat深挖服务器的性能问题首先查看执行vmstat命令后,获取到的服务器资源使用的监控数据有哪些在执行vmstat时增加了2个参数,其中参数1代表每隔1秒获取一次服务器的资源使用数据,10代表总共获取10次vmstat命令监控数据解读r目前实际在运行的指令队列(有多少个任务需要CPU来执行)如果发现这个数据超过服务器的CPU核数,表示CPU繁忙,就可能会出现CPU瓶颈(需要结合CPU使用的百分比)b目前因为等待资源而阻塞运行的指令个数,比如因为等待I/O原创 2020-12-24 13:45:17 · 1781 阅读 · 0 评论 -
【软件性能测试与调优实践】性能测试、分析与调优基础
性能测试除了为获取性能指标外,更多是为了发现性能瓶颈和性能问题,然后针对性能问题和性能瓶颈进行分析和调优性能测试的基础性能可以理解为一个系统实现其功能的能力宏观:系统能够稳定运行高并发访问时系统不会出现宕机系统处理完成用户请求需要的时间系统能够同时支撑的并发访问量系统每秒可以处理完成的事务数微观:处理每个事务的资源开销(包括CPU、磁盘I/O、内存、网络传输带宽)服务连接数服务线程数JVM Heap使用情况内存的分配和回收是否及时缓存规则的命中率不同的群体对性能的理解原创 2020-12-24 00:37:31 · 2560 阅读 · 2 评论 -
什么是死锁?其条件是什么?怎样避免死锁?
死锁的概念: 在两个或多个并发进程中,如果每个进程持有某种资源而又都等待别的进程释放它或它们现在保持着的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁 通俗地讲,就是两个或多个进程被无限期地阻塞、相互等待的一种状态 死锁产生的原因主要是: 1.系统资源不足 2.进程推进顺序非法 产生死锁的必要条件: (1)互斥(mutualexclusion),一个资转载 2015-10-13 13:19:48 · 3077 阅读 · 1 评论 -
软件内存泄露的原因
内存泄露的原因: 1.主要是由于开发过程当中申请了计算机资源(例如对象、内存等),但是使用资源完成以后没有及时释放资源导致的 例如在C语言当中使用了malloc申请了内存,但是未使用free来释放内存 2.程序Code有问题,造成没有办法回收 3.某些API函数操作不正确,造成内存泄漏另: 一、Java内存回收机制 不论哪种语言的内存分配方式,都需要返回所分配内存的真实地址,也就是返回转载 2015-10-12 13:21:38 · 1578 阅读 · 0 评论