PerfDog的使用教程
一、介绍:
移动全平台iOS/Android性能测试、分析工具平台,快速定位分析性能问题。PerfDog支持移动平台所有应用程序(游戏、APP应用、浏览器、小程序、小游戏、H5、后台系统进程等)、Android模拟器、云真机等性能测试。支持APP多进程测试(如Android多子进程及iOS扩展进程APP Extension)。
重要说明Q&A:https://bbs.perfdog.qq.com/detail-128.html
特殊机型指南:https://bbs.perfdog.qq.com/detail-127.html
性能参考标准说明:https://bbs.perfdog.qq.com/detail-145.html
WEB使用手册:https://bbs.perfdog.qq.com/article-detail.html?id=49
PerfDogService(自动化及云测性能服务):https://perfdog.qq.com/perfdogservice
二、优缺点:
优点:
- 支持移动全平台:支持Android/iOS移动平台,提供PerfDog软件Windows & Mac版本
- 无需ROOT/越狱:Android设备无需ROOT, iOS设备无需越狱
- 测试数据准确:工具CPU性能影响<1%,保证性能数据准确真实性
- 测试数据完整全面: 轻松获得 FPS、Jank、FTime、CPU、GPU、Memory、Battery 、Network、CTemp等性能参数
- 支持应用广泛:支持所有APP应用、游戏、小程序、小游戏、H5、web
- 工具易用性高:无需安装,即插即用,减少繁琐的测试障碍
缺点:
PerfDog当前处于市场推广阶段,存在诸多Bug,测试一天下来发下的Bug就不下5个,如:
- 在Mac上执行时,如果Mac屏幕休眠后,手机会与该工具断开连接导致测试中断
- 在Mac上执行测试期间图表显示正常,但上传到云平台后cpu或内存图表无法展示,且单次测试时间越长越容易复现,已提交给他们的开发处理这个Bug
- 在云平台上对浏览器的分辨率适配不好,当测试时间超过10分钟后,在云平台上无法展示完整的图表,比如测试30分钟,只显示13分钟的图标数据,可通过放缩浏览器,改变mac分辨率等方式解决,但显示有问题,已提交给他们的开发处理这个Bug
- 统计https的流量上行与实际值偏差大
- 测试数据保存本地时,经常出现PerfDog卡死
三、性能指标:
- 包体大小:包体大小能被列为性能指标,是从APP性能指标及游戏运营两个维度考虑的,玩家是更希望包体小的同时性能要好,有时它们会是一个互相取舍的关系。
- CPU占用率:一般情况下,用主流手机玩游戏20%-40%的CPU占用率算是合理的,当然这个数值随着近年来手机硬件配置的提高,会略微下降,如果CPU占用率超过80%就非常值得我们去关注了。
- 图片处理器每秒刷新的帧数(FPS):可用来指示页面是否平滑的渲染。手机游戏帧率FPS,30-60都可接受,上了60对于人眼主观感受差别就不大了。对于游戏开发而言,并不是FPS越高就一定越好,FPS取决于显卡,其次是内存、CPU,然后是网络。故综合游戏其他性能指标,选择一个适合的FPS即可。
- 内存使用:在Android系统中,每个APP进程除了同其他进程共享(shared dirty)外,还独用私有内存(private dirty),通常我们使用PSS(=私有内存+比例分配共享内存)来衡量一个APP的内存开销。移动设备的内存资源是非常有限,为每个APP进程分配的私有内存也是有限制。一方面我们要合理的申请内存使用,以免导致频繁的GC(垃圾回收机制)影响性能和大对象申请发生内存溢出;另一方面,我们要及时释放内存,以免发生内存泄漏。
- 电量:相对于PC来说,移动设备的电池电量是非常有限的,保持持久的续航能力尤为重要。另外,android的很多特性都比较耗电(如屏幕,GPS,sensor传感器,唤醒机制,CPU,连网等的使用),我们必须要慎重检查APP的电量使用,以免导致用户手机耗电发热,带来不良体验。
- 流量:目前的网络类型包含2G\3G\4G\wifi,其中还有不同运营商的区分,我们在APP的使用中经常遇到大资源,重复请求,调用响应慢,调用失败等各种情况。在不同的网络类型之下,我们不仅要控制流量使用,还需要加快请求的响应。另外,对于需要联网的手游来说,部分游戏对不同联网方式的网络类型采用了不同的流量消耗策略,主要分为wifi环境和蜂窝网络环境。所以针对不同的游戏,我们统计流量消耗时,可能要连接不同的网络进行测试。
总结,性能指标大致如下:
FPS cpu mem GPU NETwork Battery(wifi)
四、测试前准备
- 自己的设备的其他应用全都关闭。
- 电量充足,一般70%以上。(其实测试50%以上就行了,但是在测试过程中会耗电)
- 不能边充电边进行性能测试。
- 保持登录应用的账号不要被其他人挤掉,不然可能测试的性能数据作废了。
- 设备。至少要准备三台测试机,覆盖目前的高、中、低配手机(主要看cpu),如果是ios需要更多的机型。

五、安装及运行
登录PerfDog官网https://perfdog.qq.com/,根据您的PC平台选择想要下载的桌面应用程序
Windows平台:解压下载包,双击打开PerfDog.exe桌面应用程序。
Mac平台:直接运行dmg桌面应用程序。


账号的注册登录:
需要先注册账号,然后登录该账号后测试的数据就会同步到平台上;


打开PerfDog.exe文件,需要登录才能进入到 perfDog的主页, 输入刚刚官网注册邮箱即可

连接手机:
iOS:则即插即用,用户无需做任何操作。若PerfDog检测不到连接手机或无法测试,请先安装确保最新itunes是否能连上手机(最新itunes可在QQ管家上直接下载安装)。
备注:若无法使用请参考:https://bbs.perfdog.qq.com/detail-128.html
Android:有两种模式,非安装模式和安装模式。(注:请开启手机USB调试模式及允许USB应用安装。)。
a. 非安装模式:
手机即插即用,无需任何设置及安装,使用非常简单,但手机屏幕上没有实时性能数据显示。
b. 安装模式:
需要在手机上自动安装PerfDog.apk,手机屏幕上有实时性能数据显示(允许USB应用安装和PerfDog悬浮窗管理权限),启动PC版PerfDog.exe,则会在手机上自动PUSH安装PerfDog.apk,具体安装类似各个手机厂商安装第三方APP提示安装即可。(注:由于很多手机安装需要账号密码,导致无法自动安装,如果自动安装失败,则会把安装文件PerfDog.apk释放到当前文件夹里,手动安装PerfDog.apk即可)。此模式下,在测试过程中,可能由于系统资源紧缺会kill PerfDog显示app(手机界面性能数据显示),但不影响正常测试功能。
备注:若无法使用请参考:https://bbs.perfdog.qq.com/detail-128.html
测试模式:
USB模式测试:
USB连线后,在设备列表选择USB图标设备进行USB模式测试
WIFI模式测试(测试功率):
只能在WIFI模式测试功率等信息。USB连线后,在设备列表选择WIFI图标设备进行WIFI模式测试。WIFI检测连接成功后,拔掉USB连接线。(注:需要PC和被测手机连接同一WIFI,WIFI检测连接成功后,拔掉被测手机USB线(USB模式测试功率无任何意义,会充电))(备注:一般公司WIFI可能做了安全策略限制,导致iOS平台在公司WIFI下无法使用)

首页模块介绍:

模块1:选择调试的手机设备
模块2:选项需要测试的应用名称,会显示手机上安装的所有应用
模块3:手机的CPU、GPU、内存介绍等
- device:显示的是设备相关信息;
- Setting:显示的是性能指标数据的配置页面, 参数有:FPS(帧数)、FrameTime(帧时间)、CPU、NetworkFlow(网络流量) 一般我们保持默认(可以根据自己产品的特点调整)
- About:显示的是版本号和帮助文档入口
模块4:
FPS:
FPS(Frames per second) 1秒内游戏画面或者应用界面真实平均刷新次数,俗称帧率/FPS。
名称说明Avg(FPS)平均帧率(一段时间内平均FPS)Var(FPS)帧率方差(一段时间内FPS方差)Drop(FPS)降帧次数(平均每小时相邻两个FPS点下降大于8帧的次数)
在平时玩游戏的时候, 延迟不能大于100毫秒, 否则用户的严重只剩下了卡顿, 100-300毫秒用户可以感受到延迟, 当达到一秒, 用户的注意力就会转移
Jank:
1秒内卡顿次数, 帧率FPS高并不能反映流畅或不卡顿。比如:FPS为50帧,前200ms渲染一帧,后800ms渲染49帧,虽然帧率50,但依然觉得非常卡顿。同时帧率FPS低,并不代表卡顿,比如无卡顿时均匀FPS为15帧。所以平均帧率FPS与卡顿无任何直接关系)
Jank1s内卡顿次数(同时满足ab,则认为一次卡顿Jank)
a) 当前帧耗时>前三帧平均耗时2倍。
b) 当前帧耗时>两帧电影帧耗时(1000ms/24*2=84ms)。
BigJank1s内严重卡顿次数(同时满足ab,则认为是一次严重卡顿BigJank)
a) 当前帧耗时>前三帧平均耗时2倍。
b) 当前帧耗时>三帧电影帧耗时(1000ms/24*3=125ms)。
BigJank:1秒内严重滞后的次数
Jank(/10min):平均每10分钟卡顿次数
BigJank(/10min):平均每10分钟严重卡顿次数PerfDog Stutter测试过程中,卡顿时长的占比。Stutter(卡顿率)=卡顿市场/总时长
FTime:
名称说明FTime上下帧画面显示时间间隔,即认为帧耗时Avg(FTime)平均帧耗时Delta(FTime)增量耗时(平均每小时两帧之间时间差>100ms的次数)
模块5:
CPU Usage:CPU利用率官方讲解
名称说明Total CPU整机CPU使用率AppCPU进程CPU使用率CPU Clock各个CPU核心的未规划频率和未规划使用率CPU Clock Normalized各个CPU核心的规划频率和规划使用率
模块六:
名称说明MemoryPSS Memory
统计结果和Android Java API标准结果一致,与Meminfo也一致。注:部分三星机器系统修改了Meminfo底层统计方式,导致Meminfo与Java AP统计结果不一致,新出三星机器已修复)Swap Memory部分设备支持Swap功能,在启用Swap功能后,系统会对PSS内存进行压缩,Swap增加,PSS会相应减少,由于压缩会占用CPU资源,同时相应会导致FPS降低Virtual Memory(VSS)VSS 虚拟耗用内存(包含共享库占用的内存)Memory DetailNativePSS、GFX、GL、UnknownCTempCPU温度
Battery Power(Current电流、Voltage电压、Power功耗)
注:与仪器测试误差<3%左右。
注:Sum(Battery)是耗电量。
模块7:
选择需要收集性能参数,默认已经选中了一些常用的

iOS平台(苹果官方Xcode工具参数对齐。注:iOS系统对进程性能参数做严格限制,超过限制则会被系统kill)
- ScreenShot(只支持USB模式,注:部分机型截图影响性能)
- FPS(1秒内游戏画面或者应用界面真实平均刷新次数,俗称帧率/FPS)
- Avg(FPS):平均帧率(一段时间内平均FPS)
- Var(FPS):帧率方差(一段时间内FPS方差)
- Drop(FPS):降帧次数(平均每小时相邻两个FPS点下降大于8帧的次数)
- Jank(1s内卡顿次数。iOS9.1以下系统暂时不支持。类似Android的Jank卡顿和iOS的FramePacing平滑度统计原理。帧率FPS高并不能反映流畅或不卡顿。比如:FPS为50帧,前200ms渲染一帧,后800ms渲染49帧,虽然帧率50,但依然觉得非常卡顿。同时帧率FPS低,并不代表卡顿,比如无卡顿时均匀FPS为15帧。所以平均帧率FPS与卡顿无任何直接关系)
参考:https://bbs.perfdog.qq.com/article-detail.html?id=6
PerfDog Jank计算方法:
1.同时满足以下两条件,则认为是一次卡顿Jank.
a)当前帧耗时>前三帧平均耗时2倍。
b)当前帧耗时>两帧电影帧耗时(1000ms/24*2=84ms)。
2.同时满足两条件,则认为是一次严重卡顿BigJank.
a)当前帧耗时>前三帧平均耗时2倍。
b)当前帧耗时>三帧电影帧耗时(1000ms/24*3=125ms)。
1)BigJank:1s内严重卡顿次数
2)Jank(/10min):平均每10分钟卡顿次数。
3)BigJank(/10min):平均每10分钟严重卡顿次数
- Stutter(测试过程中,卡顿时长的占比)
- FTime(上下帧画面显示时间间隔,即认为帧耗时,iOS9.1以下系统暂时不支持)
1)Avg(FTime):平均帧耗时
2)Delta(FTime):增量耗时(平均每小时两帧之间时间差>100ms的次数)
- CPU Usage(TotalCPU表示整机CPU使用率,AppCPU表示进程CPU使用率,统计结果和Xcode一致,PerfDog使用率=Xcode使用率/核心数。备注:iOS平台CPU Usage是未规范化CPU使用率,请参考https://bbs.perfdog.qq.com/detail-146.html)
- Memory (是统计FootPrint,注:OOM与FootPrint有关,与系统、机型无关。只与RAM有关,如1G内存机器。FootPrint超过650MB,引发OOM)。注:PerfDog暂时在iOS9、10系统无法获取,其他版本ok。后续版本增加。如做性能测试,建议升级iOS系统版本
- Xcode Memory (XCode Debug gauges统计方式即XCode Memory)。注:iOS9、10系统暂时无法获取,其他版本ok。后续版本增加。如做性能测试,建议升级iOS系统版本
- Real Memory(Xcode Instrument统计方式即Real Memory,实际占用物理内存。注:物理内存系统策略有关,衡量内存指标时不会关注,但是它有助于分析定位整体性能问题。比如:footprint没有降低,说明应用没有释放内存,但是real memory却降低了,说明系统对内存做了压缩。由于压缩会占用CPU资源,同时相应会导致FPS降低)
- Virtual Memory(虚拟内存)
- Available Memory(整机可用剩余内存)
- Wakeups(线程唤醒次数。注:超过150进程很大可能会被系统kill。a sleep/wake cycle on each thread per second,Exceeding limit of 150 wakeups per second over 300 seconds,特别是iOS13.2闷杀后台进程事件,建议重点关注)
- CSwitch(上下文切换测试。注:单核超过14000进程会被系统Kill。Context Switch Limit 14000(Core/Second)
- GPU Utilization
- Render:渲染器利用率(像素着色处理阶段,若占比高,说明是PS阶段出现瓶颈,shader过于复杂或纹理大小、采样复杂等)
- Tiler: Tiler利用率(顶点着色处理阶段,若占比高,说明是VS阶段出现瓶颈,顶点数太多等原因)
- Device:设备利用率(整体GPU利用率)
- Network(Recv/Send,测试目标进程流量,统计结果合Xcode一致)(注:USB测试模式下是app的,WiFi测试模式下可能是整机可能是app)
- BTemp(电池温度)
- Battery Power(仅WIFI模式,整机实时Current电流、Voltage电压、Power功耗)(注:20s获取一次,目前最精准的统计方式,结果和Battery life结果一致,支持所有iOS机型)
注:Sum(Battery)是耗电量。
- Energy Usage(即为Xcode Energy Impact。监控应用使用的能耗情况(包括CPU、GPU、NetWork、Location、Display (iPhone X only)、Overhead)。(注:和Xcode Energy Impact结果一致。有线模式下测试,支持iOS9及以上系统。Total Energy<=270为Low,270<Total Energy<=1000为High,Total Energy>1000为Very High)。
参考:https://help.apple.com/xcode/mac/11.0/index.html?localePath=en.lproj#/devf7f7c5fcd
- Log日志采集(WIFI模式下,不支持Log收集)
Android平台
- ScreenShot(只支持USB模式,注:部分机型截图影响性能)
- FPS(1秒内游戏画面或者应用界面真实平均刷新次数,俗称帧率/FPS)
- Avg(FPS):平均帧率(一段时间内平均FPS)
- Var(FPS):帧率方差(一段时间内FPS方差)
- Drop(FPS):降帧次数(平均每小时相邻两个FPS点下降大于8帧的次数)
备注:高阶FPS功能-Android窗口与FPS
请参考https://bbs.perfdog.qq.com/?m=app&c=detail&a=index&id=201
- InterFrame(部分机型具有动态补帧/插帧技术,此参数可真实反映1秒内插入的帧数)
- Jank(1S内卡顿次数。解释说明如iOS平台说明)
- BigJank:1s内严重卡顿次数
- Jank(/10分钟):平均每10分钟卡顿次数。
- BigJank(/10分钟):平均每10分钟严重卡顿次数
- Stutter(测试过程中,卡顿时长的占比)
- FTime(上下帧画面显示时间间隔,即认为帧耗时)
- Avg(FTime):平均帧耗时
- Delta(FTime):增量耗时(平均每小时两帧之间时间差>100ms的次数)
- CPU Usage(传统CPU利用率,也叫未规范化CPU利用率,TotalCPU表示整机未规范化CPU使用率,AppCPU表示进程未规范化CPU使用率。备注:统计结果和Android Studio Profiler一致。具体参考https://bbs.perfdog.qq.com/detail-146.html)
- CPU Usage (Normalized)(规范化CPU利用率,TotalCPU表示整机规范化CPU使用率,AppCPU表示进程规范化CPU使用率。备注:建议参考规范化CPU利用率,性能参考更精准。具体参考https://bbs.perfdog.qq.com/detail-146.html)
- CPU Clock(各个CPU核心的未规范化频率和未规范化使用率)
- Memory (PSS Memory,统计结果和Android Java API标准结果一致,与Meminfo也一致。注:部分三星机器系统修改了Meminfo底层统计方式,导致Meminfo与Java AP统计结果不一致,新出三星机器已修复)
- Swap Memory (Swap Memory,部分设备支持Swap功能,在启用Swap功能后,系统会对PSS内存进行压缩,Swap增加,PSS会相应减少,由于压缩会占用CPU资源,同时相应会导致FPS降低)
- Virtual Memory(VSS)
- Available Memory(整机可用剩余内存)
- Memory Detail(NativePSS、GFX、GL、Unknown)
注:在极限测试情况下,例如开启游戏超高帧率,建议不要勾选收集Memory Usage和Memory Detail,因为部分机型会有性能损耗。
- GPU Usage(目前仅支持部分手机)。注:Top Android GPU测试机型,请参考:https://bbs.perfdog.qq.com/detail-195.html
- GPU Frequency(目前仅支持部分手机)。
- Mali GPU Utilization(仅支持Mali芯片GPU)注:支持的GPU列表,请参考:https://bbs.perfdog.qq.com/detail-332.html
- Non-fragment:非片段着色器(顶点着色器,细分着色器,计算着色器)耗费的GPU时间占渲染耗费的GPU时间的比例。
- Fragment:片段着色器耗费的GPU时间占渲染耗费的GPU时间的比例。
- Mali Memory & Bus Bandwidth(仅支持Mali芯片GPU)
- L2Load/Store:Load/Store单元读取L2内存的实际带宽 (包括顶点缓存,原子,图像数据)。
- L2Texture:Texture单元读取L2内存的实际带宽 (纹理采样)。
- Bus Read:定义GPU到DRAM或者GPU外部的系统内存的实际读带宽。
- Bus Write:定义GPU到DRAM或者GPU外部的系统内存的实际写带宽。
- Mali Pixels Info(仅支持Mali芯片GPU)
- OverDraw:表示每个像素由多少个片段分层组成,通常用于表示像素被重复绘制的次数。
- PixelsThroughput:表示每个被渲染的像素耗费的GPU的时钟的数量。
注:更多GPU信息说明,请参考:https://bbs.perfdog.qq.com/article-detail.html?id=72
- Network(Recv/Send,测试目标进程流量)(注:USB/WiFi测试模式下均为APP数据)
- CTemp(CPU温度)
- Battery Power(仅WIFI模式,Current电流、Voltage电压、Power功耗)(注:与仪器测试误差<3%左右)。注1:Sum(Battery)是耗电量。注2:对于已经兼容的双电机型,可参考:https://bbs.perfdog.qq.com/detail-340.html,未兼容设备可以电流x2进行容错。
- Log日志采集(WIFI模式下,不支持Log收集)
六、测试步骤
1.打开该软件并使用数据线连接手机,选择要测试的手机设备

2.点击右下角“+”,在PerfDog上勾选好性能测试需要的参数

3.在PerfDog上选好需要进行测试的APP,并在手机上打开该APP

4.(待程序趋于稳定状态开始录制,一般等待2分钟)在PerfDog上点击开始进行性能录制

5.结束测试
可以在保存excel文件的路径里看到测试的数据
也可以在云端看到自己测试的数据(性能数据同步上传到了PerfDog云端web看板)进入云端:点击右上角“云”icon,登录TAPD,进入云端。


PerfDog的使用教程的更多相关文章
- 除PerfDog之外,还有什么性能测试工具。
除PerfDog之外,还有什么性能测试工具. 高通的Snapdragon Profiler 下载地址:https://developer.qualcomm.com/software/snapdrago ...
- Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求
上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...
- Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数
上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...
- Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数
上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...
- Angular2入门系列教程4-服务
上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...
- Angular2入门系列教程1-使用Angular-cli搭建Angular2开发环境
一直在学Angular2,百忙之中抽点时间来写个简单的教程. 2016年是前端飞速发展的一年,前端越来越形成了(web component)组件化的编程模式:以前Jquery通吃一切的田园时代一去不复 ...
- wepack+sass+vue 入门教程(三)
十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...
- wepack+sass+vue 入门教程(二)
六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...
- wepack+sass+vue 入门教程(一)
一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...
- Virtual Box配置CentOS7网络(图文教程)
之前很多次安装CentOS7虚拟机,每次配置网络在网上找教程,今天总结一下,全图文配置,方便以后查看. Virtual Box可选的网络接入方式包括: NAT 网络地址转换模式(NAT,Network ...
随机推荐
- Winform使用CefSharp和HttpWebRequest如何保持会话Session
之前我们使用CefSharp,在Winform中,使用ChromiumWebBrowser加载了web项目的页面.并且通过html页面的js调用了本地的窗口.那么下一个问题来了.为了保障系统安全性,项 ...
- stm32 flash/sram 映射关系
1.可以参考手册里关于Memory map的说明, 里面说明了Flash的起始地址与大小, SRAM起始地址与大小
- oracle常用知识随笔
1.创建表空间及用户赋权 create tablespace spaceone datafile '/dev/spaceone'size 80mextent management localsegme ...
- PAT-basic-1021 个位数统计 java
一.题目 给定一个 k 位整数 N=dk−110k−1+⋯+d1101+d0 (0≤di≤9, i=0,⋯,k−1, dk−1>0),请编写程序统计每种不同的个位数字出现的次数.例如: ...
- Unity算法之A星- A*Pathfind Project插件的使用
先上效果图 首先上 插件地址 (如果没有积分可以评论区联系我) 1.下载完毕后导入unity 导入后可以在Component里面看到多了一个Pathfinding选项 2.场景搭建 首先新建两个层 ...
- 本地jar包怎么导入到maven仓库中?
1.找到你所需要的jar包 2.打开cmd找到jar包的文件夹下 3.输入安装命令实例命令 1 安装指定文件到本地仓库命令:mvn install:install-file 2 -DgroupId=& ...
- 【python】绘图,颜色,线型
颜色 最好用的:在网站上找到对应使用十六进制RGB/RGBA字符串表示颜色 可以看颜色及其对应色号名称:https://xkcd.com/color/rgb/ 参考:matplotlib指定绘图颜色的 ...
- vue后台管理系统——商品管理模块
电商后台管理系统的功能--商品管理模块 商品管理概述 商品管理模块用于维护电商平台的商品信息,包括商品的类型.参数.图片.详情等信息. 通过商品管理模块可以实现商品的添加.修改.展示和删除等功能. 1 ...
- ssh通过sock5的问题kex_exchange_identification: Connection closed by remote host
工作需要,连接几台外网的服务器.由于移动的网络直连,经常会连不上,所以想通过本地的sock5代理连接. 神奇的事情发送了,通过sock5代理,有几台主机可以连上,有几天报上面的错误. 经过反复测试,外 ...
- sonar使用
代码质量检查工具 sonar 1. 下载,版本sonar 4.5.1 运行bin下的bat文件,浏览器中访问: http://localhost:9000 , 成功. 2. 修改数据库为mysql数据 ...