自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(98)
  • 收藏
  • 关注

原创 性能测试指标-负载平均值(load average)

Linux 的 ​。

2025-04-08 09:00:00 288

原创 性能测试监控-Java线程监控线程阻塞案例

新建:new运行:runnable等待:waitting(无限期等待),timed waitting(限期等待)阻塞:blocked结束:terminated。

2025-04-07 09:00:00 796

原创 性能测试监控 - JVM监控内存泄漏案例

除了有图形化界面的visualVM之外,还可以通过命令行工具来监控JVM。

2025-04-06 08:45:00 814

原创 性能分析调优-JVM基础:堆、栈、元空间

因为堆占用内存空间最大,堆也是Java垃圾回收的主要区域(重点对象),因此也称作“GC堆”(Garbage Collected Heap)1.各线程共享,主方法区要存放类信息、常量、静态变量(static),如:public static int a=10。:堆内存中存在大量对象,且都在被引用,无法被清理,导致堆内存不足,无法分配新对象。栈区比较小,所以只是存放对象的地址,对象的真正的的数据存放在堆区中。垃圾收集器是内存回收算法的具体实现,没有完美的收集器。(如未关闭的集合、缓存)。

2025-04-05 08:45:00 631

原创 性能测试监控-Tomcat监控

是一个开源的(Web 服务器 + Servlet/JSP 引擎),主要用于部署和运行(如基于 Spring、Struts、JSP 等的应用)。:作为 Web 服务器,接收并响应 HTTP(S) 请求。:解析并运行 Java Servlet 和 JSP 页面。:通过线程池处理并发请求,提高性能。:支持 HTTP Session 管理(如用户登录状态)。:如 NIO、APR 等模式,优化网络 I/O 性能。

2025-04-04 10:00:00 744

原创 性能测试监控-操作系统级别的监控

Cpu(id)的计算基准:所有核心的平均空闲时间。进程%CPU的计算基准:所有核心的总占用时间。多核系统中,进程的%CPU可超过总体使用率的平均值,因为前者是总和,后者是平均。这是正常现象,不表示统计错误。内存CPU使用率:<80%内存使用率:<80%磁盘繁忙度:<90%网络流量:<网络上限。

2025-04-03 12:00:00 758

原创 性能测试理论基础-Redis基础及缓存穿透、击穿、雪崩

缓存穿透是指在使用redis时,数据在redis和数据库中都不存在,导致每次查询都要访问数据库,但是又不能把数据缓存到redis,从而后续每次请求都要查数据库,造成数据库压力过大,系统性能降低,甚至可能引起数据库宕机。一个热门的、经常被访问的数据过期或失效后,后续大量并发请求同时请求失效的数据直接访问数据库,导致数据库负载剧增,造成系统性能下降甚至崩溃的情况。2、空结果缓存:如果查询的数据不存在,也将结果缓存到缓存中,但设置一个较短的过期时间,避免频繁查询不存在的数据。

2025-04-02 08:30:00 576

原创 性能测试理论基础-web和APP性能测试

web系统通常包含客户端(浏览器)和服务端。:用户在浏览器地址栏中输入网址或点击链接,浏览器向服务器发送请求,请求页面的HTML、CSS、JavaScript、图片等静态资源。服务器接收到请求后,会将所需的资源文件发送给浏览器,浏览器开始下载资源文件。:浏览器收到HTML文件后,开始解析HTML代码,构建DOM树(文档对象模型)。:浏览器解析HTML时,会遇到链接的CSS和JavaScript文件,在解析过程中加载并执行这些文件,同时构建CSSOM树。

2025-04-01 17:30:00 657

原创 性能测试理论基础-性能测试的目的及系统性能的衡量标准

1、测试系统最大处理能力寻找系统最大的TPS,判断TPS和对应的响应时间是否满足预期。估算对业务量的处理能力。2、测试系统支持最高并发寻找系统最高能支持多少并发,当系统出现宕机、进程崩溃、报错率持续上升、响应时间超过可忍受范围(高频接口:<100ms,低频接口:<200ms)、程序无响应等情况,即可认为系统达到了可支持的最高并发。

2025-03-31 17:30:00 372

原创 Jmeter中的身份认证:cookie和token

浏览器与服务器间通过HTTP协议进行信息交互。但是HTTP协议是一种无状态协议,这意味着每个HTTP请求之间都是相互独立的,服务器在处理每个请求时不会保存前一个请求的状态信息。这样导致在一些诸如加入购物车、提交订单这样需要状态保持的业务场景中,无法确认用户的身份信息。于是,需要引入一种机制来维护会话状态。cookie或者token机制便可以在应用层实现一定程度的状态保持,进而实现这一需求。

2025-03-30 09:00:00 327

原创 性能测试理论基础-集合点与定时器

集合点是为了增加瞬间并发压力的一种机制,在脚本中增加一个标记,所有虚拟用户执行到标记处会进行等待,等所有用户都到达后,再同时继续执行下一步操作。主要目的是**模拟瞬时高并发场景**,验证系统在突发流量下的处理能力。: 对服务器来说,会产生一种瞬间高并发: 对服务器来说,平均压力会降低。

2025-03-29 09:00:00 768

原创 性能测试理论基础-测试流程及方案设计要点

如果包含混合场景,需要确定各接口/场景的业务比例示例:其中,TPS和响应时间都是指系统性能(吞吐量/TPS)到达拐点时的TPS和响应时间。业务占比:要保证做不同事务的用户满足比例关系。

2025-03-28 20:45:00 816

原创 性能测试理论基础-性能指标及jmeter中的指标

将所有请求的响应时间先从大到小进行排序,计算指定比例的请求都是小于某个时间。该指标统计的是大多数请求的耗时。

2025-03-27 20:00:00 1235

原创 性能调优之数据库调优-查询结果量级对响应时间的影响

即服务器处理请求所花费的时间,通常以毫秒(ms)为单位。较低的响应时间意味着服务器响应速度更快。:指单位时间内服务器处理的请求数量,通常以每秒请求数(Requests per Second,RPS)来衡量。高吞吐量表示服务器可以处理更多的请求。:指同时连接到服务器的用户数量。较高的并发用户数意味着服务器需要同时处理多个请求,并能承受更大的负载。:显示服务器的 CPU 使用情况,通常以百分比表示。高 CPU 使用率可能表示服务器过载或存在性能瓶颈。:显示服务器内存的使用情况,通常以百分比表示。

2025-03-27 12:18:52 858

原创 性能调优之数据库调优-数据库的慢查询

使用数据库的 Exporter 采集慢查询指标。配置 Prometheus 采集 Exporter 数据。定义慢查询的阈值并设置告警规则。在 Grafana 中可视化慢查询指标。结合日志分析具体的慢查询语句。通过以上方法,可以全面监控和分析数据库的慢查询,及时发现和解决性能问题。3、定位慢查询的原因根据分析结果,定位慢查询的根本原因。​缺少索引:查询条件中的列没有索引,导致全表扫描。​低效的查询逻辑:如复杂的 JOIN、子查询或 GROUP BY。​锁争用:查询因等待锁而变慢。

2025-03-20 17:00:00 583

原创 性能调优之数据库调优-数据库的锁机制

MySQL:使用和INNODB_TRX表。​PostgreSQL:使用pg_locks和视图。​SQL Server:使用和动态管理视图。​Oracle:使用v$session视图。​MongoDB:使用命令。​Redis:使用INFO命令。

2025-03-19 10:24:03 625

原创 vue2:el-table列中文字前面加icon图标的两种方式

如果是只读的,使用input,且添加锁标记,否则使用下拉框。2、input里面加icon。1、文字前面加icon。

2025-03-14 19:15:00 188

原创 数据库使用tips记录

执行update显示执行成功,查询时发现字段内容已经被正确修改了,然而这时候想要去修改表结构(执行alter语句),比如修改字段长度,总是提示“错误号: -6407,错误消息: 锁超时”。此时执行了一下commit,提示“影响了0条记录”然而此时再去修改表结构,成功。。所以,谜一样的commit。

2025-03-13 15:02:23 220

原创 vue2:表单的动态校验和静态校验

通常情况下,我们会在不同的状态下复用同一个表单,比如查看详情页和编辑页面,而不同状态下,校验规则可能有细微不同,这样,我们就需要在执行校验的时候先检查状态,不同的状态下,采用不同的规则,这就要用到动态校验。

2025-03-11 19:45:00 54

原创 vue2:在异步响应式中确保正确响应的神器 - $nextTick

所以,猜测可能是因为第一步删除之后Dom没有执行更新,紧接着又执行了数据的插入,等DOM更新的时候,没有检测到这一行子节点的数据变化(可能是因为值更新了其中的编号,而层级太深?),所以,就没有刷新这个子节点。但是目前看没有消失,所以猜测是删除操作未生效,于是,先把插入到新位置的第二行代码注释掉,仅执行第一步删除原节点的操作。方法修改数组),Vue并不会立即更新DOM,而是将这些更新操作放入一个队列中,在下一个事件循环中统一处理。在Vue中,数据的变化会触发视图的更新,但这个更新过程是异步的。

2025-02-08 17:30:00 35

原创 Vue2:通过inject在子组件中使用父组件通过mixin引入的公用方法

在Vue 2中,mixins和inject都是用于实现组件间代码复用的机制,但它们的使用场景和方式有所不同。

2025-02-07 20:15:00 216

原创 vue2:如何动态控制el-form-item之间的行间距或label的位置

某页面有查看和编辑两种状态:编辑:查看:可以看到,查看时,行间距太大导致页面不紧凑,所以希望缩小查看是的行间距。行间距通常是通过 CSS 的 或 属性来控制的。在 Element UI 的样式表中, 的下边距()通常被设置为 ,这可以视为一种“行间距”。所以要缩小行间距,就要改变这个值,但是又不希望改变编辑状态的默认值,所以,使用动态class,如下:2、动态加载class:class="formEditable?'':'el-form-item-view'" :编辑状态下,不指定

2025-02-06 20:00:00 418

原创 JavaScript使用toFixed保留一位小数的踩坑记录:TypeError: xxx.toFixed is not a function

这就导致执行第一次后,child.order的类型变成了String,这样第二次执行toFixed的时候出错。JavaScript的toFixed函数是用于将一个数字格式化为指定的小数位数的字符串。toFixed()的返回值是String,不是Number。参数是一个可选参数,默认值为0,表示不保留小数位。然而第一次执行正确,第二次执行时,提示。是需要格式化的数字,

2025-01-26 17:30:00 129

原创 Vue2:父子组件间参数传递 - 单项传递和双向绑定

在之前的经验中,数据通常都是从父组件通过prop单项传递给子组件,供子组件使用,但是并不修改。

2025-01-24 18:00:00 164

原创 Vue2:使用sortablejs实现el-table中行拖拽调整顺序

如图,实现拖拽表格中的行来调整行顺序,但是其中的编号仍然是1、2、3、4的顺序,不跟着变化。

2025-01-23 20:30:00 647

原创 vue2:关于页面布局-行内列间间隔的调整

上图第三行,其实两个控件应该挨在一起的,但是每个控件都需要一个label,el-select自己无法在前面设置lable,只能通过el-form-item来设置,这样,两个el-form-item之间会有比较大的间隔,为了缩小这个间隔,我将第一个控件的size调大了一些,设为105%第一个控件放置一个el-form-item中,并设置label,第二个控件不需要label,就不需要往el-form-item中放,这样第二列就会仅挨着第一列展示,如上图第一行中的所属模块input和后面的维护模块按钮;

2025-01-22 18:00:00 134

原创 vue2:为el-form-item的label设置背景色

要实现如下图所示,将部分label的背景色设置为灰色,查了几种方式都不起作用,最后使用插槽实现,记录如下。

2025-01-21 18:30:00 328

原创 Vue2:el-tree用scope slot为每一个节点添加一个鼠标悬浮时出现的右对齐的按钮

el-tree中,每一个节点后面添加一个按钮,响应除节点点击事件之外的操作,要求:1、按钮在鼠标悬浮在该节点之上时才出现2、按钮右对齐实现如下。

2025-01-20 18:00:00 412

原创 vue2:实现上下两栏布局,可拖拽改变高度

2、该值在页面挂载时获取初始值(window.innerHeight-100),这里减少100,因为窗口上面有工具栏;4、内部三个区域,分别是上中下,中间区域作为被拖动的那根线,光标悬浮其上时改变形状,在style中设置。1、最外层有一个box, 高度是屏幕高度screenHeight;3、监听窗口resize事件并实时计算高度;5、methods中添加中间区域响应鼠标事件。6、在mounted中调用。

2025-01-17 19:30:00 494

原创 Vue2:mixin初试,公用方法需返回一个Promise来处理异步问题

data(){return {},},watch: {},methods: {myFunc(){//处理公用逻辑},

2025-01-16 17:12:15 53

原创 Vue2:el-table 最后一列的操作按钮不换行,按钮过多时展示【更多】

表格中最后一列为操作按钮。有时候按钮比较多,就会换行展示,将行高撑大,很难看。所以需要控制按钮都显示在同一行,如果太多显示不下,出现一个下拉列表。

2025-01-11 09:00:00 470

原创 Vue2: el-table为每一行添加超链接,并实现光标移至文字上时改变形状

cols:[{label:"姓名",align:"left",prop:"name"},{label:"出生日期",align:"left",prop:"birthday", formatter:function(row, column, cellValue, index){},{label:"地址",align:"left",prop:"address"}],

2025-01-10 19:30:00 409

原创 使用集合映射实现mybatis的一对多查询

一对多查询是指一个实体对象关联多个子实体对象。比如一个订单(orders)可以有多个订单项(order_items),这是一个典型的一对多关系。在MyBatis中进行一对多查询,可以使用嵌套查询或者使用关联映射(association)和集合映射(collection)来实现。在MyBatis的映射文件中,可以使用association和collection标签来定义一对多关系的映射关系。association标签可以关联两个实体类,collection标签可以关联一个实体类和一个集合。今天实现了通过集合映

2025-01-09 18:30:00 54

原创 java中的日期处理:只显示日期,不显示时间的两种处理方式

需要记录某个操作的操作时间,数据库中该字段为DATE类型;插入后,数据库中:但是读取出来的日期显示为2025-01-08T00:00:00.000+08:00。

2025-01-08 19:30:00 341

原创 Vue2:el-table中的文字根据内容改变颜色

在el-table-column中定义一个作用域插槽,在作用域插槽中,可以通过scope对象来访问el-table列中的数据,并使用。想要实现的效果如图,【级别】和【P】列的颜色根据文字内容变化。根据数据的内容,使用条件判断来设置文字的颜色。绑定内联样式来设置文字颜色。3、根据字段内容设置颜色。

2025-01-07 19:00:00 617

原创 Vue2踩坑记录:父子间参数传递,不要尝试修改计算属性,可能无法实现响应式

在中,曾创建了一个compute属性的数组来作为props传入数组对象的拷贝,在子组件中使用。但是根据项目需要,该数组对象需要支持树形数据结构,且层级不限。在使用的过程中,不仅仅会修改根节点,很多时候会对子节点进行增删改操作,而对这些子节点的数据进行操作后,就需要改变this.moduleList的地址,使它每次都是一个新的数组,否则页面无法捕获到这种更新,也就无法实时响应。但是执行时提示你想要修改一个计算属性但是没有设置setter。

2025-01-04 08:45:00 76

原创 Vue2: table加载树形数据的踩坑记录

table中需要加载树形数据,如图:给我一种错觉,以为数据结构中要同时指定children和hasChildren字段,然而,仔细对比官网两个例子,可知。

2025-01-02 19:30:00 522

原创 Vue2: 创建一个可多选的Table,并回显数据选中状态

toggleRowSelection是Element UI中table组件的一个方法,用于切换表格行的选中状态。使用方法toggleRowSelection(row, selected)方法接受两个参数:row:被勾选行的数据。selected:设置是否选中,true为选中,false为取消选中。

2024-12-31 17:25:27 406

原创 使用javaScript的reduce进行数据处理,对数组元素进行累计、求和等各种累计运算

reduce方法是JavaScript数组的一个内置方法,用于对数组中的每个元素执行一个由您提供的reducer函数(即累加器函数),最终将数组“减少”为单个值。reduce方法接收两个参数:一个回调函数(reducer函数)和一个可选的初始值。回调函数(reducer函数)接收四个参数:1. 累加器(accumulator):这是累积回调函数调用的返回值的值,它是上一次回调返回的累积值,或者是提供的初始值(如果提供了的话)。2. 当前值(currentValue):这是数组中正在处理的当前元素。

2024-12-29 09:30:00 49

原创 Vue2:使用echarts创建图表的步骤及注意事项

在我的项目中,需要响应用户的操作,使同一组数据随意在饼图、柱状图和折线图之间切换,所以在data中并未指定横纵坐标,只是在切换的时候,根据要切换的图表类型,动态更换图表参数后渲染。2和4中介绍了两种定位元素的方法,但是如果使用ref方式在init时出错,可尝试改用使用id的方式来定位。在data中指定图表参数,这里要注意,不同类型的图形,它们所需要的基础参数是不同的。使用setOption方法设置图表的参数,包括图表类型、数据、样式等。在饼图的基础上,柱状图和折线图还需要指定横坐标和纵坐标。

2024-12-28 09:30:00 64

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除