jvm参数的认知和监控工具的使用

  • 前言
  • JVM参数
    • 标准参数
    • -X参数
    • -XX参数
      • Boolean型
        • 打印所有JVM参数
      • 非Boolean型
    • 其他参数
    • 常用JVM参数
  • 常用命令监控工具
    • jps
    • jstat
      • 查看类装载信息
      • 查看垃圾收集信息
      • jstat参数常用选项
    • jstack
      • jstack参数常用选项
    • jinfo
    • jmap
    • jhat
  • 可视化监控工具
    • JConsole工具
    • VisualVM工具
    • 插件使用和下载
    • 分析dump文件
    • 其他工具
  • 总结

前言

JVM系列前5篇文章相对偏向于理论,从这篇开始将会结合实际场景进行分析以及如何对JVM进行调优。

JVM参数

所谓的JVM调优说白了就是去设置一个合理的,适合当前系统的JVM所提供的参数。从总体上来说JVM参数可以分为三大类:标准参数-X参数-XX参数

标准参数

以“-”开头的参数称之为标准参数,标准参数是任何一个JDK版本都支持的参数,比较稳定,一般不会随着jdk版本的变化而变化。
比如:

-version
-help
-server
-cp

-X参数

以-X开头的参数是在特定版本HotSpot支持的命令,jdk版本变化之后,参数可能会发生变化。这个参数用的比较少。如以下几种:

-Xint   解释执行
-Xcomp  第一次使用就编译成本地代码
-Xmixed  混合模式,JVM自己来决定

这种参数用的比较少,了解就可以了,在这里不做演示

-XX参数

-XX是一种不稳定的参数,下一个版本可能会取消。-XX是JVM调优时的主要参数。
-XX参数分为Boolean型非Boolean型。

Boolean型

Boolean类型的-XX参数使用格式为:

-XX:[+-]<name>      +-表示启用或者禁用name属性

如:

-XX:+UseConcMarkSweepGC  表示启用CMS类型的垃圾回收器
-XX:+UseG1GC             表示启用G1类型的垃圾回收器
-XX:+PrintFlagsFinal     表示打印出所有的JVM参数信息

打印所有JVM参数

我们用-XX:+PrintFlagsFinal去打印一下所有的参数出来看一下:
任意新建一个Java类:

package com.zwx.jvm;public class TestJVMParam {public static void main(String[] args) {System.out.println(11);}
}

本人用的是IntelliJ IDEA工具,选择:Run–>Edit Configurations,然后点击左边的+号,选择Application,出现如下所示界面,加入JVM参数:
在这里插入图片描述
然后运行main方法,就会打印出所有参数(有700多个):
在这里插入图片描述
注意:上图中打印出来的参数中“=”表示默认值,“:=”表示被用户或JVM修改后的值

非Boolean型

非Boolean类型的-XX参数的使用格式为:

-XX<name>=<value>    name表示属性,value表示属性对应的值

如:

-XX:MaxMetaspaceSize=5M    设置最大永久代空间大小(jdk1.8)

其他参数

还有其他一些我们非常常用的参数,比如:-Xms,-Xmx,-Xss,但是实际上这几种参数也是属于-XX参数,这几种写法不过就是一种为了方便而设置的简写形式。所以在上面打印出来的参数中搜索-Xms,-Xmx,-Xss是搜索不到的。

-Xms1000等价于-XX:InitialHeapSize=1000
-Xmx1000等价于-XX:MaxHeapSize=1000
-Xss100等价于-XX:ThreadStackSize=100

常用JVM参数

参数 含义 说明
-XX:CICompilerCount=3 最大并行编译数 大于1时可以提高编译速度,但会影响系统稳定性,增加JVM崩溃的可能
-XX:InitialHeapSize=100M 初始化堆大小 简写-Xms100M
-XX:MaxHeapSize=100M 最大堆大小 简写-Xmx100M
-XX:NewSize=20M 设置年轻代的大小 -
-XX:MaxNewSize=50M 年轻代最大大小 -
-XX:OldSize=50M 设置老年代大小 -
-XX:MetaspaceSize=50M 设置方法区大小 jdk1.8中才有,利用元空间实现方法区
-XX:MaxMetaspaceSize=50M 方法区最大大小 jdk1.8中才有,利用元空间实现方法区
-XX:+UseParallelGC 设置Parallel Scavenge为新生代收集器,系统默认会选择Parallel Old为老年代垃圾收集器 这个组合是jdk1.8中默认组合,吞吐量优先的垃圾收集器
-XX:+UseParallelOldGC 设置Parallel Old为老年代垃圾收集器,系统默认会选择Parallel Scavenge为新生代垃圾收集器 -
-XX:+ParallelGCThreads 设置并行收集垃圾的线程数 一般设置为和cpu个数相同,这个参数也适用于CMS收集器
-XX:+UseConcMarkSweepGC 选择CMS为老年代收集器,同时系统默认会选择ParNew为新生代收集器 如果CMS收集器出现了Concurrent Mode Failure,则会切换到Serial Old为老年代收集器
-XX:+CMSScavengeBeforeRemark CMS收集器在最终标记前发生一次Young GC -
-XX:CMSMaxAbortablePrecleanTime CMS收集器的可中断预清理阶段最长停留时间 默认是5000,单位是毫秒
-XX:+UseG1GC 使用G1作为收集器 同时适用于新生代和老年代,是一款停顿时间优先的垃圾收集器,jdk1.9中默认垃圾收集器
-XX:NewRatio 新老生代的比值 比如-XX:Ratio=4,则表示新生代:老年代=1:4
-XX:SurvivorRatio 两个S区和Eden区的比值 比如-XX:SurvivorRatio=8,也就是(S0+S1):Eden=2:8
-XX:+HeapDumpOnOutOfMemoryError 启动堆内存溢出打印 当JVM堆内存发生溢出时,也就是OOM,自动生成dump文件
-XX:HeapDumpPath=heap.hprof 指定堆内存溢出打印目录 表示在当前目录生成一个heap.hprof文件
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xloggc:$CATALINA_HOME/logs/gc.log 打印出GC日志 不同的垃圾收集器总体格式相同,但是会有小差别,G1相比较其他收集器,差别较大
-Xss128k 设置每个线程的堆栈大小 经验值是3000-5000最佳
-XX:MaxTenuringThreshold=6 新生代对象进入年老代的最大临界值 默认15
-XX:InitiatingHeapOccupancyPercent 启动并发GC周期时堆内存使用占比 G1之类的垃圾收集器用它来触发并发GC周期,基于整个堆的使用率,而不只是某一代内存的使用比. 值为 0 则表示”一直执行GC循环”. 默认值为 45
-XX:G1HeapWastePercent 允许的浪费堆空间的占比 用于G1垃圾收集器。默认是10%,如果并发标记可回收的空间小于10%,则不会触发MixedGC
-XX:ConcGCThreads=n 并发垃圾收集器使用的线程数量 默认值随JVM运行的平台不同而不同
-XX:G1MixedGCLiveThresholdPercent=65 混合垃圾回收周期中要包括的旧区域设置占用率阈值 默认占用率为 65%
-XX:G1MixedGCCountTarget=8 设置标记周期完成后,对存活数据上限为G1MixedGCLIveThresholdPercent的旧区域执行混合垃圾回收的目标次数 默认8次混合垃圾回收,混合回收的目标是要控制在此目标次数以内
-XX:G1OldCSetRegionThresholdPercent=1 描述Mixed GC时,Old Region被加入到CSet中 默认情况下,G1只把10%的Old Region加入到CSet中

常用命令监控工具

jdk中的bin目录下提供了许多功能强大的工具可以帮助我们监控虚拟机的使用情况,掌握了这些常用工具的使用可以帮助我们更快更直观的分析问题。

工具和参数都是在不断使用的过程中掌握的,并不需要一下子就全部看完,可以大致浏览有个印象,建议大家可以收藏本篇文章,后续需要用到的时候方便查看

以下的演示均是基于linux环境下jdk1.8版本进行演示,不能环境和版本可能会有较大差异。

Java(TM) SE Runtime Environment (build 1.8.0_151-b12)

jps

jps:JVM Process Status Tool,一款用于查看java进程的工具。这款工具的功能非常简单,就是查看当前环境下运行的java服务的进程id和名称,一般其他命令使用前都会先使用jps命令获取java进程信息。
如下图所示:
在这里插入图片描述
jps参数主要有如下选项:

选项 说明
-q 只输出进程id
-m 输出虚拟机启动时传递给main()方法的参数
-l 输出主类的全名,如果进行执行的是jar包,则输出jar包路径
-v 输出启动虚拟机的参数

jstat

jstat:JVM Statistics Monitoring,一款用于监视虚拟机各种运行状态统计信息工具。主要可以显示如下信息:虚拟机进程的类装载、内存、垃圾收集、JIT编译等运行数据信息。

查看类装载信息

jstat -class PID 1000 10 //查看某个java进程的类装载信息,每1000毫秒输出一次,共输出10次

在这里插入图片描述

查看垃圾收集信息

jstat -gc PID 1000 10

在这里插入图片描述
上图中就显示个各个区以及垃圾回收的情况,具体代表含义如下:
注意:C表示Capacity(容量),U表示Used(已使用大小)

  • 1、S0C、S1C表示的是Survive区的S0和S1大小(Capacity)
  • 2、S1U、S2U表示已使用空间大小(Used)
  • 3、EC、EU分别表示Eden区总容量和已使用容量大小
  • 4、OC、OU分别表示老年代总空间大小和已使用大小
  • 5、MC、MU:表示方法区(jdk1.8中通过Metaspace实现)的总空间大小和已使用大小
  • 6、CCSC、CCSU:表示压缩类空间总大小和已使用大小
  • 7、YGC、YGT:新生代GC次数和GC总耗时
  • 8、FGC、FGCT:Full GC次数和Full GC总耗时
  • 9、GCT:GC总消耗时间

如果对上面含义中涉及到的各种分区不了解的,可以点击这里详细了解。

jstat参数常用选项

参数 说明
-class 查看类加载/卸载数量和大小,以及所耗费的时间
-gc 统计堆内各个分区的总大小及已使用大小,以及不同分区的次数和耗时等信息
-gccapacity 同-gc相似,但是主要统计Java堆各个区域使用到的最大和最小空间
-gcutil 同-gc类似,但是主要统计已使用空间占总空间的大小
-gccause 同-gcutil一样,只是会额外输出上一次发生GC原因
-gcnew 统计新生代的GC情况
-gcnewcapacity 同-gcnew类似,但是主要统计使用到的最大和最小空间
-gcold 统计老年代的GC情况
-gcoldcapacity 同-gcold类似,但是主要统计使用到的最大和最小空间
-gcpermcapaticy 统计永久代使用到的最大和最小空间
-compiler 输出JIT编译器编译过得方法和耗时等信息
-printcompilation 输出已经被JIT编译的方法

jstack

jstack:Stack Trace for Java,一款用于生成当前时刻的线程状态信息的快照工具。这个对于用来分析当前线程状态时非常有用的,比如说是否有哪个线程阻塞了,或者说是否发生死锁等信息。
如:

jstack PID

在这里插入图片描述
可以清晰的看到当前线程的状态。另外线程的名字也会打印出来,所以在我们自己创建线程的时候建议是采用自定义的名称,这样如果有异常我们可以很容易的知道是哪个线程出了问题。

jstack参数常用选项

参数 说明
-F 当正常请求不被响应时,强制输出线程堆栈
-l 除堆栈外,显示关于锁的附加信息
-m 当调用本地方法时,可以显示C/C++的堆栈

jinfo

jinfo:Configuration Info For Java,一款用于实时查看和修改JVM参数的工具。

注意,如果是修改的话,只能用我们上面使用命令打印出来参数中的manageable类型才可以被修改。

jinfo -flag name PID 查看某个java进程的name属性的值
jinfo -flags PID 查看已经赋值的JVM参数

针对Boolean类型的-XX参数修改命令为:

jinfo -flag [+|-]name PID

针对非Boolean类型的-XX参数修改命令为:

jinfo -flag name=value PID

如:
在这里插入图片描述

jmap

jmap:Memory Map for Java,一款用于生成堆转储快照即dump文件的命令。
如:

jmap -heap PID  //打印出堆内存相关信息

在这里插入图片描述

jmap -dump:format=b,file=/usr/heap.hprof PID //生成dump文件

在这里插入图片描述
但是其实上面的常用参数中也有一个参数可以设置,一旦发生OutOfMemoryError之后就会自动生成dump文件,这对我们分析生产环境发生OOM的原因是非常重要的。
如下,我们再idea中进行设置自动生成dump文件:

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=heap.hprof

我们利用在JVM系列文章1中所提供的一个堆内存的例子来进行演示一下:
在这里插入图片描述
在这里插入图片描述
运行之后发生OOM异常,然后可以找到对应目录下已经生成了dump文件。

既然我们生成了dump文件,肯定是要对文件进行分析的,但是我们怎么分析这个文件呢?因为直接打开时乱码的,所以我们肯定需要一款工具来对dump文件进行分析

jhat

jhat:JVM Heap Analysis Tool,一款用来分析dump文件的工具。
如:

jhat heap.hprof

在这里插入图片描述
然后访问地址:http://localhost:7000/。
在这里插入图片描述
可以看到,这款工具所展示的信息比较简单,而且因为是命令形式的,所以很难直接分析出问题,一般情况如果有其他工具可以选择的话,并不建议使用这款工具来分析,接下来我们就来看一看可视化工具的使用

可视化监控工具

JConsole工具

JConsole:Java Monitoring and Management Console,是一款JDK自带的可视化监控工具。其实就是把上面的比如jstat,jstack等命令工具统计的信息可视化了,主要可以查看java应用程序的运行概况、监控堆信息、永久区使用情况、类加载情况等信息。

JConsole使用方式可以直接在命令行中输入命令:jconsole,或者直接找到jdk安装目录下找到jconsole.exe执行文件,双击打开即可。
在这里插入图片描述
本地连接的话很简单,选中一个服务双击即可,如果是远程连接,需要远程的Java服务在启动的时候就配置JMX相关连接参数。
进入之后看到如下界面:
在这里插入图片描述
可以看到顶部有6个标签可以切换,在这里就不详细去介绍每个地方有什么用了,自己去尝试的话其实是一目了然的,可以看到内存各个区间的使用情况,线程信息(线程名字都会展示),以及类加载等信息。

VisualVM工具

VisualVM:All-in-one Java TroubleshootingTool,是JDK发布的一款功能最强大的运行监控故故障处理工具,正如名字所说的All-in-one,可以预见这是一款功能非常齐全的工具。
VisualVM主要功能如下:

  • 显示虚拟机进程及进程的配置环境信息(jps、jinfo功能)。
  • 监视应用程序的CPU、GC、堆、方法区和线程信息(jstat、jstack功能)。
  • dump文件生成及分析(jmap、jhat功能)。
  • 方法级的程序性能分析,可以找出被调用最多,运行时间最长的方法。
  • 离线程序快照:收集程序运行时配置、线程dump、内存dump等信息建立一个快照,并可以将快照发送开发者处进行Bug反馈
  • 插件化处理,可以有无限扩展的可能性

打开VisualVM工具的方式可以直接在命令行中输入命令:jvisualvm,或者直接找到jdk安装目录下找到jvisualvm.exe执行文件,双击打开即可。
在这里插入图片描述
打开之后在左边选择自己的本地或者远程应用(同样需要远程服务支持JMX服务)之后,可以看到右边界面,注意,默认只有前面5个页签,最后一个页签是插件加入进来的,不同的插件可以看到不同的功能,我这边选择的插件是com-sun-tools-visualvm-modules-visualgc.nbm插件,这是一个比较有意思的插件,我们在之前分析Java堆内存划分的一篇文章中提到了一个对象的在堆内的流转图,这个插件打开之后可以动态演示堆内各个区域内存变化,感兴趣的可以尝试下。

插件使用和下载

点击主界面工具栏内:工具–>插件–>已下载–>添加插件,然后安装即可,如下图:
在这里插入图片描述
安装之后重新打开就可以看到多了一个页签,打开之后可以实时监控内存变化
在这里插入图片描述
在插件页面点击设置可以看到最新的插件下载地址(需要vpn才能连接):
在这里插入图片描述

分析dump文件

假如生产环境发生OutOfMemoryError,我们拿到dump文件之后,就可以借助VisualVM来使用,点击工具栏中文件–>装入(注意要选择文件类型),然后找到对应的dump文件就可以打开了
在这里插入图片描述
打开之后点击“类”:
在这里插入图片描述
可以看到是Integer对象撑爆了内存,因为上面的例子是是一个非常简单的demo,就是不断地往list中添加了Integer数据,所以结合工具可以非常清晰的看到是这个对象出了问题,从而定位到问题所在。

这个工具也可以直接dump文件:
在这里插入图片描述
这个工具也可以实时设置自动dump文件分析:
在这里插入图片描述
总之这是款非常强大的工具,还有其他许多功能,而且插件化工作原理使得其提供了无限的功能扩展,有兴趣的可以自己去官网下载不同的插件下来进行试用

其他工具

除了JVM官方提供的工具,还有其他第三方也提供了一些非常优秀的工具可以帮助我们更好的分析dump文件,比如说阿里巴巴提供的在线实时分析工具Arthas,还有 MAT,Histogram等都是非常优秀的工具。

总结

本文主要介绍了一些JVM的一些常用参数的使用,以及JVM提供的一些常用的监控工具,并且利用一个OOM例子结合工具来讲述了如何分析OOM时的dump文件,当然,本文的主要目的是告诉大家有哪些工具可以使用,但是对一个工具的使用并没有非常详细的介绍,大家都是程序员,相信只要知道了有这么一款工具,使用的时候也可以非常容易上手,关键在于实践,多使用才能积累经验。工具毕竟只是工具,只是可以更好的帮助我们分析问题,更重要的是发现问题之后该如何针对问题进行修改和优化,这才是使用工具的目的。
下一篇,将介绍一下如何分析GC日志,毕竟要想对JVM调优,GC日志是必须要学会进行查看分析的。
请关注我,和孤狼一起学习进步

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 大环境下瑟瑟发抖辞职的第二天,拿了两个 offer

    本来想找 PHP 的,误打误撞发现广州的 Golang 和 PHP 混合用的公司还蛮多,恰好约面试的都是 Golang,挺纳闷的难道 PHP 真的萎靡了?不过有时候写 Go 结构体真的不习惯,这一点 PHP 的高级面向对象特性太香了。面试过程:1. 看你简历里也有用过 Go,Go 和 PHP 在运行的时候有什…...

    2024/4/10 11:20:56
  2. (小白也要学Linux)Linux入门

    初始LinuxLinuxLinux操作系统简介虚拟机虚拟机安装步骤Linux文件系统Linux操作系统结构Linux常用命令目录命令文件命令文件内容命令Vi编辑器用户管理Linux用户/用户组权限管理赋权其他常用命令 操作系统分类企业级应用操作系统和普通个人操作系统有什么区别?常用的企业级应用操…...

    2024/4/10 9:21:31
  3. Android冒险之旅-8-BaseActivity、ActivityCollector的使用

    1.BaseActivity创建一个BaseActivity类继承AppCompatActivity类用来写所有活动公共的方法,方便更好的管理活动。当创建其他活动时直接继承BaseActivity。公共方法就比如活动启动时打印类名,这样在阅读别人代码时不至于找不到对应的活动。 /*** create by 星航指挥官* create …...

    2024/4/28 2:55:49
  4. Spring源码分析(四)SpringMVC

    文章目录ContextLoaderListenerDispatcherServlet初始化九大组件MultipartResolverLocaleResolverThemeResolverHandlerMapping初始化BeanNameUrlHandlerMappingRequestMappingHandlerMapping获取HandlerExecutionChainBeanNameUrlHandlerMappingRequestMappingHandlerMappingH…...

    2024/4/23 5:58:06
  5. Spring源码分析(五)SpringBoot

    文章目录启动过程创建SpringApplication实例运行run方法扩展功能 启动过程SpringBoot的启动是从SpringApplication的静态方法run(…)开始的,实际上在该静态方法中,先创建了一个SpringApplication实例,然后再调用实例的run(…)方法,如果我们需要对SpringApplication实例的属…...

    2024/5/4 14:54:12
  6. mysql常用操作:登陆、添加新用户、分配权限及相关操作命令

    一、登录mysql本地登录mysql账户:mysql -u 【mysql账户名】 -p --可以是root账户名也可以是普通账户,让后输入密码即可登陆登陆远程主机的mysql账户mysql -h [mysql所在的远程主机ip] -P [mysql所在的远程主机设置的mysql服务端口] -u 【mysql账户】 -p 【mysql账户密码】 --…...

    2024/4/27 20:31:53
  7. 实现延时任务的 4 种实现方案!

    一、应用场景在需求开发过程中,我们经常会遇到一些类似下面的场景:a. 外卖订单超过15分钟未支付,自动取消b. 使用抢票软件订到车票后,1小时内未支付,自动取消c. 待处理申请超时1天,通知审核人员经理,超时2天通知审核人员总监d. 客户预定自如房子后,24小时内未支付,房源…...

    2024/5/3 7:58:45
  8. Linux查看python路径

    查看所有python的路径,不止一个 whereis python 查看当前使用的python路径 which python...

    2024/4/18 19:53:49
  9. linux的简单操作命令

    linux常用命令 一.目录命令: linux目录操作命令: pwd:查看当前所在目录 cd:打开目录 ls –a:查看目录下文件 ll:以列的方式显示目录下的文件列表 mkdir:创建文件目录 rm –rf:删除文件或目录 rm ri:删除文件前询问用户 cp:复制文件命令 mv:移动文件或修改文件名 1.增…...

    2024/5/4 8:44:08
  10. LeetCode1392 最长快乐前缀题解

    LeetCode1392 最长快乐前缀 题目 「快乐前缀」是在原字符串中既是 非空 前缀也是后缀(不包括原字符串自身)的字符串。 给你一个字符串 s,请你返回它的 最长快乐前缀。 如果不存在满足题意的前缀,则返回一个空字符串。 举例子:示例 1: 输入:s = “level” 输出:“l”示例…...

    2024/5/4 15:24:34
  11. msxml2类封装

    头文件声明(XmlDocument.h):#pragma once#import "msxml3.dll" #include <msxml2.h> #include <string>#if defined(UNICODE) || defined(_UNICODE)typedef std::wstring tstring; #elsetypedef std::string tstring; #endifclass CXmlNodeList;class…...

    2024/5/1 21:26:52
  12. 第十章 数组翻转

    1.上下反转flipud 结果数组B=flipud(数组A) >> a=rand(4,3)a =0.6787 0.6555 0.27690.7577 0.1712 0.04620.7431 0.7060 0.09710.3922 0.0318 0.8235>> b=flipud(a) %偶数行 b =0.3922 0.0318 0.82350.7431 0.7060 0.09710.75…...

    2024/4/28 22:00:08
  13. vue和jQuery的区别

    文章目录vue介绍jquery介绍vue和jquey对比举例说明 vue介绍 vue是一个刚兴起不久的前端框架,有一套完整的体系,是一个精简的MVVM。从技术角度讲,vue.js专注于MVVM模型的ViewModel层,通过双向数据绑定把view层和Model层连接起来,通过对数据的操作就可以完成对页面视图的渲染…...

    2024/4/15 2:54:58
  14. 四. Zuul 基于数据库实现动态路由

    目录一. 基础解释二. 简单实现创建 Zuul 网关服务 一. 基础解释解释: Zuul 基于数据库实现动态路由的原因,假设当前新建了服务,或已有服务中添加了新的接口,怎么不停机的情况下动态配置该接口通过网关访问,通过数据库进行配置,手动向数据库中存储服务与接口的映射关系,Zuul定时…...

    2024/4/14 0:12:36
  15. Ollydbg简易教学

    Ollydbg介绍Ollydbg(简称OD)是Windows平台下Ring3级的程序调试利器。程序调试有静态调试和动态调试两种。静态调试是指将程序源代码编译成可执行程序之前,用手工或编译程序等方法对程序源代码进行测试,来查找和修正程序中的语法错误和逻辑错误。动态调试则是在可执行程序的…...

    2024/4/15 6:49:16
  16. 头脑发热~~入坑了

    wins10系统,内存8G,开了个虚拟机,装载了ubuntu64位系统,版本是20.04,嘎嘎新!安装pycharm,python3.8,虚拟环境等。简短记录,持续更新!...

    2024/4/28 2:57:28
  17. Opencv Linking CXX shared library ../../lib/libopencv_core.so

    错误信息: [ 31%] Linking CXX shared library …/…/lib/libopencv_core.so CMake Error: cmake_symlink_library: System Error: Operation not supported CMake Error: cmake_symlink_library: System Error: Operation not supported modules/core/CMakeFiles/opencv_core…...

    2024/4/28 8:47:15
  18. SpringBoot + Shiro 一篇文章快速入门

    🏠 本文收录于Github仓库,欢迎前来 star 呀~ https://github.com/Veal98/CS-Wiki 🏃‍ 在线阅读地址/更好的阅读体验请移步:https://veal98.gitee.io/cs-wiki/🛸 SpringBoot + Shiro 一篇文章快速入门1. Shiro 简介Apache Shiro™ is a powerful and easy-to-use Java …...

    2024/5/3 20:54:47
  19. [选拔赛1]花园(矩阵快速幂),JM的月亮神树(最短路),保护出题人(斜率优化)

    多年不考试,一夜回到解放前T1:花园titlesolutioncodeT2:月亮神树titlesolutioncodeT3:保护出题人titlesolutioncode T1:花园 title 小 L 有一座环形花园,沿花园的顺时针方向,他把各个花圃编号为 1∼n。花圃 1 和 n 是相邻的。 他的环形花园每天都会换一个新花样,但他的…...

    2024/4/26 21:20:22
  20. trade for/trade with/train for等动词词组

    本博文源于《词博士的私教课英语动词词组速记420》本博文属于“Day6 Week 3” Reading take out 除去;取得(贷款、许可、保险等);带…出去If you take something out,you remove it permanently from its place. If you take out something such as a loan,a licence,or an in…...

    2024/4/28 4:38:51

最新文章

  1. 阿里云API网关 产品的使用笔记

    阿里云的产品虽多&#xff0c;还是一如既往的一用一个看不懂&#xff0c;该模块的文档依旧保持“稳定”发挥&#xff0c;磕了半天才全部跑通。 用阿里云API网关的原因是&#xff0c;在Agent中写插件调用API的时候&#xff0c;需要使用Https协议&#xff0c;又嫌搞备案、证书等事…...

    2024/5/4 17:05:35
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. OpenHarmony开发-连接开发板调试应用

    在 OpenHarmony 开发过程中&#xff0c;连接开发板进行应用调试是一个关键步骤&#xff0c;只有在真实的硬件环境下&#xff0c;我们才能测试出应用更多的潜在问题&#xff0c;以便后续我们进行优化。本文详细介绍了连接开发板调试 OpenHarmony 应用的操作步骤。 首先&#xf…...

    2024/5/3 10:28:22
  4. 【虚幻引擎】C++ slate全流程开发教程

    本套课程介绍了使用我们的虚幻C去开发我们的编辑器&#xff0c;扩展我们的编辑器&#xff0c;设置我们自定义样式&#xff0c;Slate架构设计&#xff0c;自定义我们的编辑器样式&#xff0c;从基础的Slate控件到我们的布局&#xff0c;一步步的讲解我们的的Slate基础知识&#…...

    2024/5/1 12:53:48
  5. 416. 分割等和子集问题(动态规划)

    题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义&#xff1a;dp[i][j]表示当背包容量为j&#xff0c;用前i个物品是否正好可以将背包填满&#xff…...

    2024/5/4 12:05:22
  6. 【Java】ExcelWriter自适应宽度工具类(支持中文)

    工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...

    2024/5/4 11:23:32
  7. Spring cloud负载均衡@LoadBalanced LoadBalancerClient

    LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon&#xff0c;直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件&#xff0c;我们讨论Spring负载均衡以Spring Cloud2020之后版本为主&#xff0c;学习Spring Cloud LoadBalance&#xff0c;暂不讨论Ribbon…...

    2024/5/4 14:46:16
  8. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

    一、背景需求分析 在工业产业园、化工园或生产制造园区中&#xff0c;周界防范意义重大&#xff0c;对园区的安全起到重要的作用。常规的安防方式是采用人员巡查&#xff0c;人力投入成本大而且效率低。周界一旦被破坏或入侵&#xff0c;会影响园区人员和资产安全&#xff0c;…...

    2024/5/3 16:00:51
  9. VB.net WebBrowser网页元素抓取分析方法

    在用WebBrowser编程实现网页操作自动化时&#xff0c;常要分析网页Html&#xff0c;例如网页在加载数据时&#xff0c;常会显示“系统处理中&#xff0c;请稍候..”&#xff0c;我们需要在数据加载完成后才能继续下一步操作&#xff0c;如何抓取这个信息的网页html元素变化&…...

    2024/5/4 12:10:13
  10. 【Objective-C】Objective-C汇总

    方法定义 参考&#xff1a;https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...

    2024/5/3 21:22:01
  11. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

    &#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格…...

    2024/5/3 23:17:01
  12. 【ES6.0】- 扩展运算符(...)

    【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…...

    2024/5/4 14:46:12
  13. 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?

    文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕&#xff0c;各大品牌纷纷晒出优异的成绩单&#xff0c;摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称&#xff0c;在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁&#xff0c;多个平台数据都表现出极度异常…...

    2024/5/4 14:46:11
  14. Go语言常用命令详解(二)

    文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令&#xff0c;这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

    2024/5/4 14:46:11
  15. 用欧拉路径判断图同构推出reverse合法性:1116T4

    http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b&#xff0c;我们在 a i a_i ai​ 和 a i 1 a_{i1} ai1​ 之间连边&#xff0c; b b b 同理&#xff0c;则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然&#xff0…...

    2024/5/4 2:14:16
  16. 【NGINX--1】基础知识

    1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息&#xff0c;并安装一些有助于配置官方 NGINX 软件包仓库的软件包&#xff1a; apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...

    2024/5/3 16:23:03
  17. Hive默认分割符、存储格式与数据压缩

    目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限&#xff08;ROW FORMAT&#xff09;配置标准HQL为&#xff1a; ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

    2024/5/4 12:39:12
  18. 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法

    文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中&#xff0c;传感器和控制器产生大量周…...

    2024/5/4 13:16:06
  19. --max-old-space-size=8192报错

    vue项目运行时&#xff0c;如果经常运行慢&#xff0c;崩溃停止服务&#xff0c;报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中&#xff0c;通过JavaScript使用内存时只能使用部分内存&#xff08;64位系统&…...

    2024/5/4 16:48:41
  20. 基于深度学习的恶意软件检测

    恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞&#xff0c;例如可以被劫持的合法软件&#xff08;例如浏览器或 Web 应用程序插件&#xff09;中的错误。 恶意软件渗透可能会造成灾难性的后果&#xff0c;包括数据被盗、勒索或网…...

    2024/5/4 14:46:05
  21. JS原型对象prototype

    让我简单的为大家介绍一下原型对象prototype吧&#xff01; 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象…...

    2024/5/4 2:00:16
  22. C++中只能有一个实例的单例类

    C中只能有一个实例的单例类 前面讨论的 President 类很不错&#xff0c;但存在一个缺陷&#xff1a;无法禁止通过实例化多个对象来创建多名总统&#xff1a; President One, Two, Three; 由于复制构造函数是私有的&#xff0c;其中每个对象都是不可复制的&#xff0c;但您的目…...

    2024/5/3 22:03:11
  23. python django 小程序图书借阅源码

    开发工具&#xff1a; PyCharm&#xff0c;mysql5.7&#xff0c;微信开发者工具 技术说明&#xff1a; python django html 小程序 功能介绍&#xff1a; 用户端&#xff1a; 登录注册&#xff08;含授权登录&#xff09; 首页显示搜索图书&#xff0c;轮播图&#xff0…...

    2024/5/4 9:07:39
  24. 电子学会C/C++编程等级考试2022年03月(一级)真题解析

    C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...

    2024/5/4 14:46:02
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57