当前位置: 首页 > news >正文

android下的app性能测试应主要针对那些方面,如何开展?

如何开展安卓手机下的App性能测试,对于优秀的测试人员而言,除了要懂得性能测试的步骤流程外,还应该懂的性能测试的一些其他知识,比如性能测试指标、各指标的意义,常用的性能测试工具、如何查看结果分析等等知识。所以本文为了讲透该知识点,具体的撰写大纲如下所示:

1、性能测试目的
2、性能测试指标
3、 移动APP性能测试步骤流程
4、性能测试结果分析
5、性能测试场景问题分析
6、性能测试学习视频推荐

好,马上就讲。

一、性能测试的目的
性能测试的目的简而言之,就是优化应用程序(注:应用程序在PC端被称为"软件",在移动端被称为“App”),满足用户使用体验。

对于移动应用App来说,要想取得成功,顶级性能是最重要的。否则,最终用户将卸载应用程序APP,去寻找性能更好的APP替换它。

我承认18年我就是因为荒野行动卡顿,用户体验不好,才跑去玩和平精英的。

那到底要关注哪些方面,每个指标在实际生产中是如何影响业务?在实际生产中如何开展?我们从以下几点来看。

二、性能测试指标
1、Android性能指标
基础的产品性能指标,一般涵盖页面加载速度、到站率、接口返回速率、成功率、白屏率等用户侧指标,也包含功耗、流量消耗、包体积、磁盘空间等物理指标。

2、CPU
主要关注的 CPU 的使用率。比如打游戏时间长了,手机会出现发热发烫,是因为CPU 使用率过高,CPU 过于繁忙,会使整个手机无法响应用户,整休性能降低,用户休验会很差,也容易引起 ANR等等一系列问题。指用户进程与系统进程消耗的CPU时间百分比,长时间情况下,一般可接受上限不超过85%。

3、GPU
GPU 过度渲染是指:在一个像素点上绘制多次,过度绘制对动画性能的影响是极其严重的,如果你想要流畅的动画效果,那么一定不能能忽视过度绘制。

还有一种由于当前线程中执行了太多任务,UI渲染跟不上Sync信号(刷新信号)而出现掉帧,通常是主线程导致。而这也是优化的重点,因为大部分卡顿、掉帧都会在这里现出。

4、APP响应时间
作为应用成功的核心特征之一,移动应用响应时间至关重要。用户对较长的加载时间和缓慢的处理零容忍。对应好坏的指标有:

优秀:0-400ms

标准:400ms-2000ms

隐患:2s-5s

严重:>=5s

优化APP性能需注意以下几点:减少 cookie 大小、使用更少的 URL 重定向、消除 Flash 等组件等,以实现良好的响应时间。

5、流畅度FPS
FPS指的时应用被使用时得流畅度,是图像领域中的定义,是指画面每秒传输帧数,通俗讲就是指动面或视频的面面数。FPS 是测量用于保存、最示动态视频的信息数量。

每秒钟帧数越多,所显示的动作就会越流畅,帧率肯定是越高越好,出于功耗与显示设备的限制,一般跑满也就在60fps左右。一般,Android 设备的屏幕刷新率为 60帧/s,要保特面面流畅不卡倾,要求每一帧的时间不超过1000/60=16。6ms,称之为16ms 的黄金准则,如果中间的某些帧的渲染时间超过 16ms。

导致屏幕渲染时间缓慢,也可能是由于屏幕尺寸不准确、字体不一致、图像未缩放、过多的阻塞脚本等导致。需要加快屏幕页面渲染时间,需避免使用 CSS 表达式并引用 HTML 中的图像。

6、应用程序APP崩溃
通常崩溃率是每次应用加载的平均崩溃率。移动设备的典型崩溃率为 1-2%,但可能会因APP类型、APP使用情况、成熟度等,而产生有很大差异。应始终以 98% 的无崩溃用户为目标。

7、电池使用情况
电池寿命是任何移动设备的关键特性。移动应用app电池消耗测试仅在必要时优化APP以消耗低电池电量。还应尽量减少后台活动。

在持续使用时,某些app程序会消耗大量电池寿命并加热手机。这个因素极大地提高了任何app程序的性能,并且通常会在APP使用的资源超过所需资源时发生。过多的资源使用会给处理器带来负担,并且手机会发热

8、内存消耗
在 Android 系统中,每个APP 进程除了同其他进程共享内存(shared dirty)外,还有私有内存(private dirty),通常我们使用 PSS(私有内存+比例分配共享内存)来衡量APP 的内存开销。

内存使用占有率高,APP在运行时,由于一个移动设备的内存是固定的,会和与其他后台APP竞争,如果内存消耗过大就会造成应用卡顿或被操作系统终止(闪退)。应保证应用不占用过多的内存资源,且能够及时释放内存,以保证整个应用内的稳定性和流畅性,以减少APP的内存占用。

内存利用率:内存利用率=(1-空闲内存/总内存大小)*100%,一般至少有10%可用内存,内存使用率可接受上限为85%。

9、 网络流量
目前的网络类型包含 2。5G、3G、4G、wifi,其中还有不同运营商的区分,我们在 APP的使用中经常遇到大资源,重复请求,调用响应慢,调用失败等各种情况。在不同的网络类型之下,我们不仅加快请求的响应,还要控制流量使用。每秒钟乎均流量,建议值<5.12kb,每10 分钟平均流量,建议值<3MB。并且不存在app偷跑流量等行为。

10、碎片化

性能质量在各种移动设备中都是相对的。在市场上Android有数以千计的移动设备,它们因品牌、价格而异的硬件配置、不同的操作系统版本、不同的分辨率。在具有不同 RAM、ROM 和不同规格的处理器等设备上,对应用进行测试。确保应用在容量较低的设备上,也可以正常地运行(如4g,再低则很少有维护的必要)。

三、性能测试步骤流程
通常性能测试会交由专门的性能测试组进行测试。但在不同的公司、不同类型的App,对性能测试步骤流程都是相似的。

在做性能测试的时候,通常是这样的分配的:

• 45%前置准备:性能测试分析,也就是制定明确的标准及目标;

• 30%测试执行:通过工具或自动化脚本,根据制定的目标,进行执行;

• 25%结果分析:执行完成后得出性能报告,但这并不意味着结束。而是要根据报告分析系统中存在问题的原因。

1、前置步骤
但在实际开始测试移动应用App性能之前,通常需要制定一个针对该应用,行而有效的测试计划,以确保应APP得到有效测试。简单而言,有以下几个步骤:

步骤1:性能需求分析

性能需求分析是开始进行性能测试最重要的部分。

同其它软件研发流程一样,性能测试也是有需求的。需求通常要明确:对性能测试或调优要的目标确认;系统背景相关信息进行确认;被测系统的业务场景确认;测试风险确认。这些都对之后的高效性能测试实现等,都具有指导性。

步骤 2:定义测试性能目标

缺乏移动应用App性能测试目标,是APP开发和性能测试中最常见的失败原因。

性能测试需要目标清晰、定义明确,与业务APP实现目标保持一致,否则测试过程很容易阻塞。比如:我觉得这个页面打开有点儿慢,足足用了5秒,对于研发来讲:这符合预期,因为定义时只是说很快,从10秒到现在5秒,效率提升两倍,我5秒已经很快了~从而开始争论不休。

步骤 3:确定测试用例 KPI
计划需要设置并实现测试基准,以证明性能测试的可行性。战略目标确定了APP测试的目标, KPI 将帮助我们了解,距离实现这些目标还有多远。

以下这些 KPI 可以帮助衡量测试的有效性:

平均响应时间
峰值响应时间
错误率
并发用户数
每秒请求数
吞吐量
步骤 4:确定关键场景并确定优先级
大多数APP性能测试失败的一个常见原因是目标定义不明确。

每个功能点都应该有对应得性能指标。这需要尽早定义。否则一概而论很可能会破坏测试策略,阻塞性能测试进度,发现不了性能能瓶颈的测试结果都是无效的。

制定好优先级,这需要先对必要的功能场景,制定对应的性能指标,测试完成后,再制定辅助功能场景的性能指标,并继续测试。

App性能测试清单:

• 使用此APP需要多少 RAM?

• 验证APP在不同网络和环境下的速度和响应时间。

• 在多种网络条件下确保真实的用户体验

• 确保在多个连接的情况下实现所需的结果

• 确保APP不会崩溃。

• 确保APP程序在使用数据、Wi-Fi 或其他连接时表现良好

• 监控正常运行时间和移动 API 使用瓶颈

• 确定最大并发用户数

• 检查app程序的极限

步骤5:在测试环境中使用模拟器、虚拟机和真机设备,测试APP
通常在模拟器等虚拟测试设备上,可以帮助测试人员运行APP,尽管虚拟测试设备与最终用户设备表现相似,并具有成本效益,但也仅仅是大致了解APP,依旧无法替代真机。

这是因为在真实设备上,会获得最真实的体验感受。如:相机权限、GPS的性能,这往往是虚拟设备无法提供的。还可以在各种屏幕分辨率,以及不同的地理位置和网络环境进行测试。通常真实设备比虚拟测试设备提供更准确和可靠的结果。

设置App性能测试环境如下:

• 了解需要测试的App程序

• 识别APP需要在其上运行的不同操作系统版本

• 构建测试设置

• 构建模拟器或模拟器

• 实际设置的原型

• 选择合适的测试工具

步骤 6:测试与研发协调
性能测试通常由自动化支撑,来实现APP在软件生命周期中的持续测试。

而测试方法与APP开发方法应保持一致,有助于测试目标和测试基准统一,有助于实现APP愿景和业务战略,同时也有助于让研发团队中的每个人,可深入了解在一段时间内应用性能,对未来得性能提升打下坚定得基础。

例如:敏捷开发中,开发及测试团队,在整个项目的开发生命周期中,开发和测试的持续迭代,将工作流,调整为阶段,在进入下一阶段之前,开发及测试团队定期进行回归测试并接受错误报告。

步骤 7:考虑运营商网络的延迟和带宽
日常测试种会受到网络带宽和网络消耗及延迟的影响。移动设备通过第三方网络运营商连接到互联网,带宽和网络延迟可能会有所不同。因此需要在不同的网络条件下测试APP,以确保APP良好的运行,提供可靠的质量保证和改进的APP性能指标。

流量
APP需要在各种速度可变的网络上进行检查。

APP要在 2G、3G 、 4G和WIFI 网络上进行测试,监控APP的行为。特别是当两个网络都可用,并且从一个网络切换到另一个网络时。

例如:当用户将电话网络从 4G 切换到 WIFI 时,用户的APP中可能会出现问题,反之亦然。在这种情况下,APP变得无响应,可能需要重新启动APP才能使用。

抖动

响应时发生延迟时,对理想时间位置上,出现的短期偏离,称为抖动。

这是在分组交换网络时,发生的问题。当信息被分发到数据包中时,数据包可以通过不同的路径,从发送者到接收者。当数据到达预期位置时,它会变得比最初发送的顺序更混乱。

我们要确保当出现随机抖动的情况时,App程序应该有足够的能力来处理它。处理起来通常是告知用户,需要重新发送请求或等待系统再次响应。
数据包丢失

在完全丢包的情况下,APP应该能够重新发送信息请求或相应地生成警报。

如果数据不完整,则用户将无法理解 App 中显示的信息。这会给用户带来困惑并质疑应用的能力。

因此,最好显示合适的错误消息或提示用户重试。

2、测试执行——挑选移动应用性能测试工具
性能测试需求目标场景确认完成后,就要挑选用来针对测试所用到的性能测试工具。因设备和平台的类型而异。推荐一些最常用的测试工具包括::

1)Appium【推荐,正文末附该工具学习资料】
Appium Studio 是一款免费的移动性能测试工具。它以其易于阅读和编写的代码界面、各种受支持的测试和独特的 XPath 而闻名。

它与现有的测试环境完全集成,并为开发人员提供对特定于设备的功能的访问。

2)Robotium
Robotium 是一个 Android 测试自动化框架,它为原生和混合APP提供全面支持。

该框架使为 Android APP编写,其功能强大且健壮的自动黑盒 UI 测试变得容易。

开发人员可以编写自定义功能、系统和用户验收测试场景。用户还可以记录和回放进行测试的步骤。

3)Selendroid
Selendroid 是一个基于 Selenium 的测试自动化框架,适用于 Android 原生和混合移动应用app以及移动网络。用户可以同时测试多个 Android 应用版本,在模拟器或真机之间切换。

4)Sauce Labs
Sauce Labs 是一个真机云APP自动化测试平台,提供移动应用app的自动化测试。

允许用户在 700 多种不同版本的操作系统,在云真机设备上,并行运行测试,且不会相互干扰。

支持测试人员在没有编程知识背景下,进行移动端自动化测试。

还为测试客户提供了一个安全的测试协议,可在开发、测试、测试版或发布后,对错误进行捕获,并确定优先级。通过更深入地了解APP故障的根本原因,提供高保真错误数据和强大的崩溃分析,来降低APP风险。

5)JMeter 【正文末附该工具学习资料】
JMeter 通常用来测试服务器,可用于测试静态和动态资源。如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库和 FTP 服务器等等。

JMeter 可对服务器、网络或对象模拟巨大的负载,在不同压力类别下测试它们的强度和分析整体性能。

另外,JMeter 能够对APP做功能/回归测试、分布式测试,通过创建带有断言的脚本来验证程序是否返回了期望结果。为了最大限度的灵活性,JMeter 可以使用正则表达式创建断言。

四、最后就是测试结果分析
1、测试结果报告:
测试完成后会,会生成报告,一般分为三个部分:

• 基础信息:包名、版本号、提交时间。

• 检测结果:如果下方的检测项出现错误,则会在检测结果上提示哪台手机出现错误。

• 各设备检测结果:选择的机型中的各个设备的检测结果。

2、设备检测结果:
设备信息:安卓版本、分辨率、运行内存、内部储存空间、屏幕大小

设备性能参数:再次启动时间、列表滑动帧率、CPU 占用率、FPS、内存占有率

3、重要检测项:
首次启动时间:首次启动耗时下限设定为 4000ms;耗时过长,会导致用户看到的都是白屏或者内容有缺失。建议检查加载过程中的所有操作,看是否存在请求数据耗时过长,或者一次性渲染数据过大的情况等。

内存占用为:快应用内存占用下限,设定为 600M;请检查是否存耗费内存的操作,如:内存泄漏,没有复用的超长列表,很多大尺寸图片等。

其他较为重要的检测项目还有:

• 是否成功安装

• 是否成功启动

• 是否有卡死现象

• 是否有崩溃现象

• 是否成功卸载

• 是否正常运行

• 是否出现黑屏或者白屏异常
 

4、生成测试报告

生成测试报告,或者通过excel表里面的数据,制作折线图、柱状图。此时,作为测试人员并不是提交这些报告才算完工。我们需要查看执行概览,测试结果,被测系统监控,错误日志,跟踪并分析日志等。

5、在测试结果分析前,还需要有四看:
在整个测试场景的执行过程中,  一要看:测试环境是否正常。

如果在测试过程中发生出现过异常,那么这样得出的结果往往不准确,无须进行分析。

二要看:测试场景的设置是否正确、合理。

测试场景的设置是否正确对测试结果有很大的影响。当测试出现异常时,需要分析是不是由于场景设置不正确引起。

三要看:负载生成器和服务器的系统资源情况。

保证负载生成器在整个测试过程中的CPU、内存、带宽未触及到性能瓶颈,否则测试是无效得。

四要看:错误发生曲线在整个测试过程中是否有规律变化

如果是,则意味着程序存在一定的缺陷。

五、场景问题分析
通常上线一定时间内,APP会发生不同的问题。总结不同的应用场景,在性能测试领域,大概有以下几类常见问题:

1)应用间互相影响:

在与其他APP并行测试时,要做到不会干扰到其他APP运行。测试时需与其它应用之间进行切换,以监控应用与其他应用的交互方式。

2)卡顿分析:
通常需要插桩,通过对线程任务分布,CPU利用率及颗粒度进行卡顿问题分析及线程堆栈信息收集。

3)流畅性分析:
保存FPS记录、记录动态视频信息数量,查看相关线性图。

4)启动分析:
自动化测试启动时间,启动阶段执行任务分析、线程创建情况分析。

5)内存分析:
查看内存多维度的指标,如:Java Heap Dump 内存数据,分析大小对象、内存泄漏问题,纹理分配数量及占用内存,还原图片帮助归因。

6)界面分析:
UI自动化进行验收,视图拾取、点选视图、查看视图信息&修改视图属性,展示视图输等。界面层级结构分析、视图归类分析等。

7)崩溃分析:
对ANR 监听并捕获、NativeCrash、Java crash 堆栈信息,崩溃数据抓取,分析各种环境关键信息。
 

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

相关文章:

android下的app性能测试应主要针对那些方面,如何开展?

如何开展安卓手机下的App性能测试&#xff0c;对于优秀的测试人员而言&#xff0c;除了要懂得性能测试的步骤流程外&#xff0c;还应该懂的性能测试的一些其他知识&#xff0c;比如性能测试指标、各指标的意义&#xff0c;常用的性能测试工具、如何查看结果分析等等知识。所以本…...

【深度学习】注意力机制(二)

本文介绍一些注意力机制的实现&#xff0c;包括EA/MHSA/SK/DA/EPSA。 【深度学习】注意力机制&#xff08;一&#xff09; 【深度学习】注意力机制&#xff08;三&#xff09; 目录 一、EA&#xff08;External Attention&#xff09; 二、Multi Head Self Attention 三、…...

学习黑马vue

项目分析 项目下载地址&#xff1a;vue-admin-template-master: 学习黑马vue 项目下载后没有环境可参考我的篇文章&#xff0c;算是比较详细&#xff1a;vue安装与配置-CSDN博客 安装这两个插件可格式化代码&#xff0c;vscode这个软件是免费的&#xff0c;官网&#xff1a;…...

gdb本地调试版本移植至ARM-Linux系统

移植ncurses库 本文使用的ncurses版本为ncurses-5.9.tar.gz 下载地址&#xff1a;https://ftp.gnu.org/gnu/ncurses/ncurses-5.9.tar.gz 1. 将ncurses压缩包拷贝至Linux主机或使用wget命令下载并解压 tar-zxvf ncurses-5.9.tar.gz 2. 解压后进入到ncurses-5.9目录…...

《Linux C编程实战》笔记:实现自己的ls命令

关键函数的功能及说明 1.void display_attribute(struct stat buf,char *name) 函数功能&#xff1a;打印文件名为name的文件信息&#xff0c;如 含义分别为&#xff1a;文件的类型和访问权限&#xff0c;文件的链接数&#xff0c;文件的所有者&#xff0c;文件所有者所属的组…...

Python个人代码随笔(观看无益,请跳过)

异常抛错&#xff1a;一般来说&#xff0c;在程序中&#xff0c;遇到异常时&#xff0c;会从这一层逐层往外抛错&#xff0c;一直抛到最外层&#xff0c;由最外层把错误显示在用户终端。 try:raise ValueError("A value error...") except ValueError:print("V…...

Unity中实现ShaderToy卡通火(总结篇)

文章目录 前言一、把卡通火修改为后处理效果1、在Shader属性面板定义属性接收帧缓存纹理2、在片元着色器对其纹理采样后&#xff0c;与卡通火相加输出请添加图片描述 二、我们自定义卡通火1、修改 _CUTOFF 使卡通火显示在屏幕两侧2、使火附近屏幕偏红色 前言 在之前的文章中&a…...

等保2.0的变化

1法律地位得到确认 《中华人民共和国网络安全法》第21条规定“国家实行网络安全等级保护制度”&#xff0c;要求“网络运营者应当按照网络安全等级保护制度要求&#xff0c;履行安全保护义务”&#xff1b;第31条规定“对于国家关键信息基础设施&#xff0c;在网络安全等级保护…...

漏洞复现-网神SecGate3600防火墙敏感信息泄露漏洞(附漏洞检测脚本)

免责声明 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的…...

ArkTS入门

代码结构分析 struct Index{ } 「自定义组件&#xff1a;可复用的UI单元」 xxx 「装饰器&#xff1a;用来装饰类结构、方法、变量」 Entry 标记当前组件是入口组件&#xff08;该组件可被独立访问&#xff0c;通俗来讲&#xff1a;它自己就是一个页面&#xff09;Component 用…...

JS中for循环之退出循环

我为大家介绍一下退出循环的两种方法 1.continue 退出本次循环&#xff0c;一般用于排除或者跳过某一个选项的时候&#xff0c;可以使用continue for(let i 0;i<5;i){if(i 3){continue}// 跳过了3console.log(i) //0 1 2 4}2.break 退出整个for循环&#xff0c;一般用于…...

《Global illumination with radiance regression functions》

总结一下最近看的这篇结合神经网络的全局光照论文。 论文的主要思想是利用了神经网络的非线性特性去拟合全局光照中的间接光照部分&#xff0c;采用了基础的2层MLP去训练&#xff0c;最终能实现一些点光源、glossy材质的光照渲染。为了更好的理解、其输入输出表示如下。 首先…...

华南理工C++试卷

诚信应考 , 考试作弊将带来严重后果&#xff01; 《C程序设计试卷》 注意事项&#xff1a;1. 考前请将密封线内填写清楚&#xff1b; 2. 所有答案请答在试卷的答案栏上&#xff1b; 3&#xff0e;考试形式&#xff1a;闭卷 4. 本试卷共 五 大题&#xff0c;满分100分&#xff…...

0001.WIN7(64位)安装ADS1.2出现L6218错误

用了十多年的笔记本电脑系统出现问题&#xff0c;硬件升级重装以后安装ADS1.2。在编译代码的时候出现L6218错误。如下&#xff1a; 图片是从网上找的&#xff0c;我编译出错的界面没有保留下来。 首先&#xff0c;代码本身没有任何问题 &#xff0c;代码在win7(32位)下编译没有…...

HBuilderX 配置 夜神模拟器 详细图文教程

在电脑端查看App的效果&#xff0c;不用真机调试&#xff0c;下载一个模拟器就可以了 --- Nox Player&#xff0c;夜神模拟器&#xff0c;是一款 Android 模拟器。他的使用非常安全&#xff0c;最重要的是完全免费。 一. 安装模拟器 官网地址&#xff1a; (yeshen.com) 二.配…...

10、神秘的“位移主题”

神秘的“位移主题” 1、什么是位移主题2、位移主题的消息格式3、位移主题是怎么被创建的4、什么地方会用到位移主题5、位移主题的删除机制 本章主题是&#xff1a;Kafka 中的内部主题&#xff08;Internal Topic&#xff09;__consumer_offsets。 __consumer_offsets 在 Kafka …...

【Linux】dump命令使用

dump命令 dump命令用于备份文件系统。使用dump命令可以检查ext2/3/4文件系统上的文件&#xff0c;并确定哪些文件需要备份。这些文件复制到指定的磁盘、磁带或其他存储介质保管。 语法 dump [选项] [目录|文件系统] bash: dump: 未找到命令... 安装dump yum -y install …...

使用 TensorFlow 创建生产级机器学习模型(基于数据流编程的符号数学系统)——学习笔记

资源出处&#xff1a;初学者的 TensorFlow 2.0 教程 | TensorFlow Core (google.cn) 前言 对于新框架的学习&#xff0c;阅读官方文档是一种非常有效的方法。官方文档通常提供了关于框架的详细信息、使用方法和示例代码&#xff0c;可以帮助你快速了解和掌握框架的使用。 如…...

vue实现悬浮窗拖动的自定义指令

首先在自己的项目根目录下建一个 src --> config --> drag.js 然后在main.js中全局引入 //鼠标拖动 import drag from /config/drag; Vue.use(drag); drag.js文件相关代码 import Vue from vue; //使用Vue.directive()定义一个全局指令 //1.参数一&#xff1a;指令的…...

gitee(ssh)同步本地

一、什么是码云 gitee Git的”廉价平替” > 服务器在国内&#xff0c;运行不费劲 在国内也形成了一定的规模 git上的一些项目插件等在码云上也可以找得到 二、创建仓库 三、删除仓库 四、仓库与本地同步 > 建立公钥 五、把仓库同步到本地 六、在本地仓库中创建vue项目…...

Redis新数据类型-Bitmaps

目录 Bitmaps 简介 命令 1. setbit (1) 格式 (2) 实例 2. getbit (1) 格式 (2) 实例 3. bitcount (1) 格式 (2) 实例 4. bitop (1) 格式 (2) 实例 我的其他博客 Bitmaps 简介 Bitmaps 是 Redis 的一种新数据类型&#xff0c;它是一种用于存储位信息的数据结构&…...

web前端之vue组件传参、各种传参的不同写法、语法糖

MENU vue2refemit vue3语法糖refemit(一)语法糖(二) vue2 refemit 子组件 <template><div><el-dialogtitle"新增":visible.sync"dialogFormVisible"close"handleClose"><el-form :model"form"><el-form…...

基于Nexus搭建Maven私服基础入门

什么是Nexus&#xff1f;它有什么优势&#xff1f; 要了解为什么需要nexus的存在&#xff0c;我们不妨从以下几个问题来简单了解一下: 为什么需要搭建私服&#xff1f;如果没有私服会出现什么问题&#xff1f; 对于企业开发而言&#xff0c;如果没有私服&#xff0c;我们所有…...

JavaScript自执行函数:用途、好处

JavaScript中的自执行函数是一个常见的编程技巧&#xff0c;它可以在特定的场景中发挥重要作用。本文将介绍自执行函数的用途、好处&#xff0c;并提供代码示例进行说明。 引言 在JavaScript编程中&#xff0c;自执行函数是一种特殊的函数调用方式&#xff0c;它能够在定义后…...

Git使用无法拉取

错误提示&#xff1a; error setting certificate verify locations: CAfile: C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt CApath: none 问题原因&#xff1a; 这个问题是因为git配置里crt证书的路径不正确导致的 解决办法&#xff1a; 这个路径配置是在C:\Pro…...

来聊聊CAS

什么是CAS CAS全称Compare-And-Swap&#xff0c;是一种无锁编程算法&#xff0c;即比较当前的值与旧值是否相等若相等则进行修改操作(乐观锁机制)&#xff0c;该类常用于多线程共享变量的修改操作。而其底层实现也是基于硬件平台的汇编指令&#xff0c;JVM只是封装其调用仅此而…...

【EventBus】EventBus源码浅析

二、EventBus源码解析 目录 1、EventBus的构造方法2、订阅者注册 2.1 订阅者方法的查找过程2.2 订阅者的注册过程1. subscriptionsByEventType 映射&#xff1a;2. typesBySubscriber 映射&#xff1a;2.3 总结订阅者的注册过程 3、事件的发送 3.1 使用Post提交事件3.2 使用p…...

Buck电源设计常见的一些问题(二)MOS管炸机问题

MOS管炸机问题 1.概述2.MOS管的相关参数3.过电压失效4.过电流失效5.静电放电和热失效1.概述 在我们做电源产品或者电机控制器时候,经常会坏MOS管。我相信90%以上的硬件工程师在职场生涯中都会遇到这类问题。然而这类问题也总是让人防不胜防。经常我们都会开玩笑的说,没烧过管…...

Javascript高频面试题

系列文章目录 文章目录 系列文章目录前言1.JavaScript常见数据类型null 和 undefind区别symbol&#xff08;ES6新增&#xff09;、bigInt&#xff08;ES10新增&#xff09; 2.JavaScript判断数据类型的方式3. 和 区别&#xff0c;分别在什么情况使用&#xff1f;4.变量声明 va…...

锁--07_2---- index merge(索引合并)引起的死锁

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 案例分析生产背景死锁日志表结构执行计划 EXPLAN为什么会用 index_merge&#xff08;索引合并&#xff09;为什么用了 index_merge就死锁了解决方案注&#xff1a;M…...

专门做二手手机的网站吗/深圳关键词快速排名

作为消费者&#xff0c;你是否有这样的经历&#xff1a;你在当当网买了三年的书&#xff0c;但从来没有关注过图书频道首页&#xff0c;没有留意过图书专题Banner&#xff0c;也几乎没有用过图书导航目录。你只用一个功能&#xff1a;搜索。上淘宝&#xff0c;你可能也是这样&a…...

做网站你给推广/温州网站优化推广方案

上个月参加了一场西雅图当地的线下 iOS 开发者聚会。Jeff Szuhay 作为一个有20年开发经验的资深程序员&#xff0c;跟我讲了一套提高 iOS 开发效率的方法。相比于其他程序员在 App 启动时间、架构优化方面的经验&#xff0c;老爷子 Jeff 的优化基于硬件层面&#xff0c;匠心独运…...

武汉介绍网页设计/seo外包公司哪家好

来源&#xff1a;雪球App&#xff0c;作者&#xff1a; 手机中国联盟官博&#xff0c;(https://xueqiu.com/9150984509/148242228)集微网4月29日消息(文/数码控)&#xff0c;黑鲨官方推特在昨天宣布了一个好消息&#xff0c;那就是黑鲨游戏手机2海外版获得了基于Android10深度定…...

钱多网站/推广小程序

matlab中矩阵LDLT分解与Cholesky分解矩阵LDLT分解与Cholesky分解&#xff1a;矩阵的LDLT消去函数的程序代码&#xff1a;%矩阵的LDLT分解function [s,l,d]ldlt(a)s1;l0;d0;%判断矩阵是否对称if a~a %矩阵不对称&#xff0c;输出错误信息 s0;else bdiag(a); %列向量b存放矩阵a的…...

一个网站绑定2个域名/爱站关键词

写在前面&#xff08;今天我们来介绍两篇论文,以CE-Net为主,因为CE-Net用到了PsP-Net中的block,所以我们顺带一起讲一下。semantic seg是逐像素点的分类,所以某种意义上讲semantic seg也可以称为 dense seg&#xff09;《CE-Net: Context Encoder Network for 2D Medical Image…...

建站用wordpress 起飞了/百度托管运营哪家好

数据流转 理论上&#xff0c;我们需要对系统数据流转的每个节点做监控&#xff0c;收集数据&#xff0c;以便于分析&#xff0c;但受限于环境或时间问题&#xff0c;因此&#xff0c;需要进行简单分类&#xff0c;选择最需要的地方进行监控 系统硬件资源 对于承载应用的最基础设…...