粉丝1874获赞1.0万

我们在实际的 j v m 的性能监控和性能调油过程中呢,我们往往会用到 j v m 和 j d k 的相关的一些命令工具, 那我们从这一角呢就来去看一下这些命令行的工具有哪些。那么这一角呢,先来看我们的 gps, gps 呢是 jtk 提供的一个查看当前 java 进程的一个工具, 它使用起来呢非常简单,应用起来呢也倒不复杂,那我们一块通过案例来看一下。 首先呢我们要打开我们的命令行,在我的 e 盘下边有我的 pomcat, 然后我们把我们的 ct 病进来,我们启动起来, 启动起来之后呢,在我们 topcat 下呢,我们有个公众包是我的 jackins, 这个窗口就不要关闭掉了,我们把它最小化。那我们来看, 首先呢我们来看 gps, gps 呢直接敲呢,他能够去查出来我们相应的包名啊等等这样操作。当然我们还有一个是 gps 杠 l, 杠 l 呢是输出完整的包名和应用的类名,包括我们这包的完全的路径名就展现出来了,大家看这是我们 gps 吧,这我们像这个命令啊,这是我们 bootstruck, 哎,大家记住这个编号,二二四四就两个二, 两个四就每个人的里边呢,可能是不同的,可能不同的,那还有呢,它的命令里面常常在用的时候,我们可能还有加上 gun kill, gun kill 呢是仅仅属 输出什么?仅仅显示扎瓦的进程编号,扎瓦的进程编号大家看到吗?二二四四,还是我们杠,在这个我看还是杠,在这个还有呢,我们的 gps 杠 v 啊,输出这是杠 v, 什么是输出 j v m 的参数? 比如说这里边呢,大家会看到我们会有我们的叉 m s, 应应该会有我们的叉 m s 的, 我看一下啊,我们来找一下 j d k 哎,在这里面看到了吗?我们看到我们叉 m s, 叉 m s 呢?我们前面提到过, 这是 g m 启动,是申请初始的 hip 值,也就是堆值嘛,也就是我们常说的初始堆的大小啊,初始堆的大小,你看这是我们通 他对应的汉堡,还有个大写的 v, 大写的 v 里边呢,就是输出谁啊?隐藏输出传递 gvm 的参数,这个是相当于显示显示出来了,这个是隐藏隐藏的展现出来的,所以大家看到的是这些内容。 那我们这是因为我的演示呢,是在 windows 机制上去演示的,我们在 linux 机制上面呢,我们可以还除了我们的 gps, 我们还可以结合一些 linux 本身的命令,比如说 linux 上会有 top 对不对?但 top 命令和我们的 g p s 命令呢,是完全不一样的,它是查看整个里尼斯的进程,还有在另一上的可能会有谁啊? p p s 杠 e f, 然后 grip 这样去筛选我们的 java 进程也是 ok 的。所以说呢,大家在不同的操作系统平台下面呢, 除了系统级的命令之外呢,大家要考虑到本身 j t k 给我们提供的这些命令工具。那我们这一讲呢,关于我们 g p s 的讲解呢,就讲到这儿,它的内容呢,确确实实呢,也比较少。

利尼克斯的进程管理在实际的项目中,利尼克斯进程管理经常用到的命令有 ps 接 ps, 还有这个 car。 首先我们看 ps 啊,那么这个进程显示这个命令,那么他有若干个参数,那你比如说杠,你比如说 a 啊,显示现行终端机下的所有程序啊, 啊,这是中端机啊,那么杠 a 显示所有程序, 我们看这个优, 那么他是显示用户的程序啊, 啊,这是各个用户啊。好了,那么 这些参数啊,大家呀自己试一试啊, 这是 ps 啊,这是 ps, 那么我们在这个大数据项目中啊,啊,经常用到 gps, 那么因为很多这个大数据框架,它是用扎瓦开发的啊, 所以啊,他往往是抓娃进城啊。啊,你比如说我们啊,简单写个程序啊, 那么这个扎娃程序也非常简单啊,啊,他里面里面呢,就执行个死循环啊,我把这循环打出来吧。啊, 那么他是个死循环啊,那么这个程序是个静态的概念是吧, 你把这个程序运行起来啊,他就是动态的概念,程序的运行啊,就变成了进程,那么我们执行这个抓挖,这个进程在某, 那么他是个死循环啊, 他是个死循环。那么我们怎么才能看见这个扎娃的进程啊,我们用接片 s 啊, gps 啊,用这个指令,那么这个啊是抓挖这个进程啊,这是抓挖这个进程, 那么这个死循环啊。我我们怎么把它宗旨啊,宗旨掉啊,就是这个死循环啊, 我们可以强制杀死这个进程,我们用这个这个 q 命令啊, 杠九啊,代表强制杀死,那么这个进程编号啊,是二三幺八 啊,这个进城被杀掉了是吧?啊,那么这个进城进城宗旨了,这个进城宗旨了,也就是说这个死循环宗旨啊。 啊,那么这三个指令啊啊,是我们实际项目中经常用到的啊,经常用到的 啊,特别是我们想杀死个进城是吧,就是这么来做啊,这么来做。

大家好,我是叶子杨老师,欢迎大家观看由我录制的深入理解佳话训练期这条视频教程。呃,那么我们本节呢?来认识我们的。 呃,第一个熏鸡工具啊,也是我们用的这个频率最高的一个熏鸡工具,叫做 gps。 那么什么叫 gps 呢?就是 gpm plusss idas 吐,那么这个其实就是类似于其实我们通过这个我们记一下吧,叫做加号。 有这么一个东西啊,叫做加瓦进程的状态。那么其实就类似于我们的任务管理器对吧,就他,其实就是他,就是他。我们看到有哪些任务在运行啊, 啊,跟这个还不太一样,应该是这个温温十足,跟之前啊啊这种感觉啊,这种感觉就是有一个任务的名称 啊,有有他的这个 p id 之类的,我们可以啊,这个可能跟之前的 window 的操作系统变化比较大,应该跟这个比较类似,有这个 p id 啊,有 描述啊,有内存啊等等那些信息啊。就是类似于这么一个东西,查看这个晋城的,查看晋城的,查看晋城的。嗯,但是呢,他主要查看的就是 加号的进程。当然咱大家如果对这个雷雷克斯比较熟悉的话,把这个去掉,就是一个 ps, 也是查看禁城的,是这个雷雷克斯,下边查看禁城的。 嗯,那么他存在的意义在于哪呢?我直接使用这地方的任务管理器不就可以了吗?为什么还要使用这个 gps 呢?当然了, 还是那句话,存在的就是合理的。呃,那么我们可以打开个加号应用,我们来看一下。首先我们通过命令号 gps。 呃, 我们看到这里有两个进程是吧,一个是六六九二,一个是七二八八,那么七二八八就是我们当前的这个 gps, 这个 gps 他本身就是一个早晚进程,所以他也会显示到这个地方来啊,所以他也会显示那那这个没名字的是什么呢?这个没名字的就是我们刚才所打开的这个 apx。 嗯,前面呢就是这个。这个叫做什么呢?这个这个其实就是我们这地方所看到的我们当前的这一个,我们可以找到这个, 这就是就在这详细信息。他就是六六九二,也就当前的这个 p id 是吧?当当然了,他还有一个别的名字啊。他他还有一个别的名字叫做本地 虚拟机唯一 id。 呃,也就是所谓的这个啊, lvm id 记一下啊, 这个怎么记得能给我查看这个 这个本地虚拟器 vip 啊,他能够显示他那么也就是啊 logo。 呃,俄措 啊,他的简称是啊, lvm id 啊。我们分别来看,每一个叫做 logo 多处摸肾 啊 id 啊, id 啊,这就是本地区的 e id 啊。那么如果这个应用是本地的,那么他显示的就是和我们的这个 啊,当前的系统的这个 p id 是一致的。呃,那么如果是他也可以显示这个远程的这个啊,加我信息的精神信息。那么这个格式我们后边用到的时候再说啊,那格式相对来讲会稍微复杂一点, 这里先不说了。那么似乎这么看并没有太大的意义是吧?我们我们这样我们来写一个程序 啊。九 a 在这里呢,我们来创建一个克拉斯,嗯,非常简单,我们让他不停的运行啊,就是一个弯腰粗, 我们能够让我们的这个本地进城啊,和我们的这个 gps 都能够监控到这个程序就可以了 啊,这样就行了。然后呢,我们来变形啊,其实这样不太好是吧,我们可以直接这样下 是干的,接收用户的, 那么我们只要不输的话,他是不是就卡在这里了。 好了,嗯,我们来打开我们的任务管理器,装 iphone x, 那么这个地方就运行了,我们在这里应该就能找到这个,应该就是这个啊,应该就这个。呃,然后呢,我们再来运行一个啊,两个,三个。呃,我们按名称排序 找到我们的加法是不三个是不三个吧。那么你知道我运行的哪个是哪个吗?就这样还不太好区分是吧?我们可以通过这个 gps 来看一下啊,嗯,也是三个门是吧,也是三个门。嗯,这样也并并不太好区分。其实这样他是确实是不太好区分的。我们通过杠 l 可以指定这个 他所运行的主类,但是咱们运行的主类也确实是相同的,所以我们依然没法区分出来啊,每一个所执行的。呃,其实 这已经够区分出来的啊,就是说他能够通过杠 l 这个参数啊,就是显示出来这个进程所执行的主类,或者诈文件啊,或者是诈文件。 嗯,然后呢,我们比如说啊,其实他所优于我们这个任务管理器的一个最大的优势就是比如说我们使用的不同的这个组类的话,那么运行那么在这个 里边依然显示的就是同样的名字。而在我们的这个 gps 中,他所能看到的就是不同的主类名,那么就可以进行区分了,这个其实就是他主要的区别。当然了, gps 不仅仅是有这些参数啊,他还有一些非常重要的参数。 嗯,比如说 m 参数啊。我们来看一下。那么这个 cps 跟海 m 又是什么意思呢? 这个是说标识的就是这个他所运行的这个组类所接收的参数。所接收的参数。我们看到这个 gps, 他本身就是一个加化进程, 那么他所接受的参数是不就是刚 m, 那么这地方就显示出来了是刚 m。 而这些闷,其实那个组类里面是没有接受参数。那么我们是不是可以 给他让他接受一个参数?我们来看一下右键装爱是让康菲克威森是呃阿,根本是在这里边写一个 a a 行吧。然后呢,我们再来看这题 s 啊。那么这里是不是就显示出来了这个 a a a, 也就是说这个门里边所接收的参数啊。嗯。然后呢,接着我们还有一些比较有用的参数,这是接收我们的这个程序运行时参数对吧?我们刚才看到装爱的卡菲格威三次, 这显然是有两个参数,一个是普普拉姆 f, 还有一个叫 vm x。 呃,那么我们如何来看一下他所接收的这个 vm 的参数呢?啊,我们可以通过这个还有喂啊喂, 这样就是一个他所接收的 vm 参数啊。我们可以看到 gps 所接收的是阿普雷 k 三连后帽,还有这个 xms。 那么这个六一八零我们说是啊,六一八零是谁啊?六一八零是闷是吧?这个六六九二是我们的这个 x。 他所接触的一些产品,我们看到他用的就是 officei 是吧? icei, 嗯,据说这个加入酒的时候是出这个,这个时候是吧,但是 似乎 osgs 不已经成了这个模块化的一个标准是吧?嗯,不不说他。那么我们可以看到这里边我们所见到的这些熏鸡参数里边,嗯,其中我们看到他这个用的就是记忆吧, 记忆,嗯,这个我们已经详细的了解过了。好了,这是关于 gps 啊,就基本上就这么多参数啊,基本上就这么多参数, 主要呢就是我们加一块啊,杠 m, l, v, 我就把所有的信息把这个都显示出来了。 m 是参数, l 是类的全名,类呢,是寻集参数。 好了,那么到这里呢,我们对于这个 gps 呢,就告一段落了,我们给大家记一下吧。这个 m 是啊, m 是啥呀? m 是 这个运行时长,说出来 运行时传入主类的参数啊。呃,然后呢,是位位是啥呀?这个取饮机参数啊。 还有一个 l 是运行的数类名,数类的全名, 或者啊,是炸包的名称啊。好了,那么 gps 呢?我们就说到这里啊,说到这里,谢谢大家。

哦,他现在已经有问题了。什么问题呢?他才不断的频繁的产生 fpc, 最关键的是在这,你往这看好,这是最关键的。这是什么意思呢?这个的意思就是说,当经历了一次富力 c 之后,整体回收内存从原来的幺九幺九八零幺五 k 回到了幺九八零幺九八零幺五 k, 哎,这个是幺九八零幺五 k 回到幺九幺九八零幺四 k, 只回收了一 k。 你一个 fg c 下来,您老人家只回收一 k 或者零 k 在干嘛?他在干什么?基本不减少。对啊,为什么不爱好,这里面一定是他回收不掉。 回收不掉什么意思啊?你们分析一下,这是我们的 o 的区,这里面内存满了。我做回收的时候本来正常有有有的对象应该都死了,但是他回收一遍,居然里边没有死对象,没有垃圾没有,有任何有垃圾的地,说明里边对象全有。用全有 就代表着有的所有的人都有引用指向的回收不掉啊,这个叫做内存的泄露,内存的溢出。好,我这里澄清两个概念,以免有同学不了解。第一个叫 memory leak, memory leak 叫内存泄露,第二个叫 out of memory。 内存泄露是什么?内存泄露是说你,你在这块内存里有一个对象站在那,他就站那不动了, 没什么用,但是他就跟他站着,也不释放,产生了内存泄露之后才会产生内存溢出,如果这样的对象多了,内存就溢出了, 但是如果只有那么一两个他就在内存里站着,他也不,他也不失望,他就占那么大地。但是你其他内存还够用,这个时候就不会产生奥特曼 mary, 所以内存异株和内存泄露他是两个概念,从最后的我们的分析结果来看,他一定是犯 完成了内存的泄露,并且泄露越来越严重,然后产生了内存溢出。那这时候我就要分析了,到底是什么样的对象占了这么大的空间?好,所以我们这个逻辑很清楚吧? 这逻辑我们看日志,日志发现他回收不了多少空间,那就分析里边有一定有泄露,里边有泄露的话,就是一定有对象在不断产生,在占着空间,而且还不释放啊,占,占着茅坑啊,是吧?然后所以下面呢,我就要看到底是哪些对象干了这件事 啊?这个逻辑到现在为止应该比较清晰,对不对?下面我们就来分析,到底这里面哪些对象被占了呢? 他这个进程已经死了,重新把他跑起来。好,我在另外一个窗口里教大家呢,这个命令 j map 啊,昨天没给大家讲的。这个命令叫什么呢?叫 j map 好看,这里在这在这啊, 就这些命令呢,我不建议大家都背过,你手边有一条小的那个,呃,手册放旁边就可以了。嗯,你用多了呢。其实面光问你,你一定能说出这个命令的名字来,但是参数你不一定记得住,这个事很正常,你要把参数都记住的话,反而这事就不对了,说明你背过来看这里啊,教大家这个命令就这麦 j map map 的意思叫 memory, 就是分析内存用的 来 j map 这个命令呢,他会干一件什么事?他会干这么一件事,他会直接进去,进到那个,那个,那个正在跑这个内存里面,帮你去把那个里面那些对象一个一个给你揪出来做一个分析, 这很牛,当然进行了命令之前呢,我首先得知道他的进程,来电号, gps, 二三幺零 g mat 杠黑色 生成一个分析图,二三幺零回收,当然这个,呃,就就就就,他的内容太长了啊,所以我们给他加一个限制服, 嘿,刚二十,我们把前二十行给打出来, ok, 同学们,你们仔细看,这里列出来的是什么呢?这里列出来的就是在这个这个 m 里面有哪些个类所产生了多少个对象? 好比如说有这么一个来,这是数组,这个是数组,嗯,不去管他,他本身只产生了三百四十四个,最小。呃,我们来看这里,在这里呢,有一个 schedule filter test, 你看到了吧? 好,他产生多少个对象呢?十四万个,而我们的 extracted kids in nineteen, 这是我们的锁,产生了二十八万个 big decimal, 是我们的开了英粉那个类里面的成员变量,产生了十四万个, 下面呢,都一样的,十四万多个。最主要的类在哪呢?其实在这看到了吗?咖喱粉,居然咖喱粉在里面有十四万个对象,大家记得这个数目前是十四万 来,再执行一遍你,你会发现他已经变二十万了,看到了吗?再执行一遍你会发现他已经变二十一万了。 啊,同学们,看出问题来了吗?问题在哪里啊?对,有一个对象在不断的充电,这样你是不是就把它揪出来了?同学们,只增加不减少,对不对?哎,当然,我告诉你,你只是把这个对象给揪出来之后还没完事,你得去查你这个程序的 bug 到底在哪里产生的,一直没有释放。对啊, 没错啊,就是这个程序的问题在哪里呢?程序的问题在哪里?如果你没有学过现成池,这问题你还是找出来,所以暂时我就先给你扔在那。好吧,你自己去查,当然你要听过老师讲的都县城高品帆这个书上的内容,这个 这个你很容易一眼就看出来了,但你要没没学过,嗯,这个问题你找你也得找半天了。呃,我还是那句话,昨天呢也跟大家说过这些问题了, 就是另外一个问题,用这种方式呢,目前看起来并不是特别难,其实 oom 问题我跟你讲,这个问题不难,不是很难,他的步骤也是死的,知道吧, 就是你运行起来 j map 一下,然后看看哪个对象站的最多,哎,接下来就把这个对象呢跟到你的代码里面,看看哪里在不断的产生这个对象就行了。找你的代码的 bug 去。已经定位出来了, 这个不难,但实际上呢,呃,你想找这个 bug 出来呢,也没有你远远没有你想的那么容易,有一些也有逻辑的,写的非常的复杂,所以在这个时候呢,大多数的时间是用在修正你的代码上 om 问题,这就是一个相对一个死的步骤了。 我们来稍微回顾一下,其实相相当简单啊,别人说你,哦,你这个,你们原来产生过 om 问题,你在简历里说,那比如问你,你,你怎么对他进行定位的呀? 哎,你就说,你就别说你用了什么那个那个自己的那个扎瓦斯带那些命令,你就直接说我用了阿斯斯,嗯,用了一些命令,然后呢?我还用了什么?我还用了 j max 这个命令,这麦克不是阿斯斯斯带的。阿斯斯没有这个命令, 只有这个命令,他的功能没有实现,其他命令全实现了。对,用了这个就 ok 了,找出来哪些对象呢?他不断的在内存。然后呢?我回去,回过头去找八哥啊,我发现八哥到底出在哪?是有一个现成的东西,现成吃的东西没写对,好了,搞定,这是最简单的,最初级的。现在的问题就又来了, 我跟你说 jmf 这个命令,如果没什么要问到你的话,这里面坑也特别多。首先第一点,我现在的堆特别小,二百兆,我只剩一个 jmf, 他花的时间很短,甚至不到一秒钟,如果你们家堆一百个 g, 你一个 j 麦不上去,这哥们里面就暂停了,听懂了吗?好,我再说一遍,如果你们家堆特别大,你一个 j 麦克命令直接扑上去的话, 你们家这堆就直接暂停了。对,这麦克风会把你的现在的进程给你停掉,这个事一般是不被允许的。 所以你这个命令,你如果说你用过这半个命令,你还得要好好的把这事给圆过去。好,怎么圆呢?有好多种方式啊,这种细节老师都帮你想好了。好吧,看这里啊, 有四种说法,你自己挑一种,你看,比如说你,你有很多台服务器做了高可用了,你停掉这台服务器,对其他服务器不影响,这个牛不牛?这可以吧?哎,这个可以。当然 这迈法还能干一件事,就是直接把内存全倒出来,其实他直接就是堆转储好吧,对,当你说了这句话之后,哎,面试官一想,这哥们可以啊,不仅懂这个 vm 调优,哎,他还在用过高可用的这样的环境啊, 做个集群,嗯,可以涨个两千块钱,没问题啊。好,看这里或者是什么,或者呢,你执行了这么一个东西,设定了一个参数叫黑单啊,奥特曼 memory, 一般的情况,任何的这种实际当中的运行环境,这个参数一般都要设。记住了, 在你实际运行一个你的应用程序的时候啊,这个参数一般都要设。这参数叫什么?看,这里叫 he down on out of memory era, 就是如果一旦产生了 out of memory era 之后呢,他会直接产生一个内存转储 文件。内存专属文件的意思就是说,这个 jm 里的堆,里面的内存原封不动的给你存到一个硬盘上,放到一个文件里以后,你就可以拿着这个文件直接来做分析了。关于怎么分析内存专属文件这件事, 网上一堆一堆又一堆的,内容特别多,有讲 mat 的,有讲 jvrvm 的,有讲, 当然这个讲的很少,但是呢,这个是最原始的命令 jinghad 的啊,大家听我说,你们觉得有必要给你们弄一个对文件,让你们看看吗?有必要吗?好,那就弄一个,但是啊,记住,实习当中不是这么干的啊,一定要听清楚, 虽然可以弄一个,可是这个事你一定要远过去才可以,要理解这一点。呃,声称对于整首文件呢,有好多名字都可以生成啊,比较简单,这个你就,你就记就行了,就 j max 杠档, four max 杠 b fl 等于什么 pid 就完了。 特别简单一个,这边命令就生成。那好。呃,除了他可以生成之外,阿克斯也可以直接生成,我们用阿克斯生成。好吧, 我在这里啊,来阿瑟,这里面有一命令,你一看就明白这个名字叫啥。 hit them 就是把那堆哎,你给我倒出来,倒成一个文件里 hit down, 看他用法。黑弹幕刚刚 live 什么什么什么 ok, 就这么用,我就不敲了,可以吗?太简单了,因为看这里黑弹幕 刚刚赖我活着的对象转手到哪个文件里面去。泰文不如下面的弹幕点 hp hprof 这个文件好。这命令很简单,我就不敲了,可以吧,同学们,他生成了之后我还得从另一层下载下来。 下载下来之后呢,哎,我下载到 windows 上,下载 windows 上之后呢,我再用 jv 肉 vm 版打开, 很简单一件事情啊。主要是太太简单了。来,也就是说你把这个 jvovm 打开,我现在假设你已经从你的临死服气上已经把这个文件给下载下来了,这样这个假设大家能接受吧。然后呢,你就把这个文件打开来分析就可以了。文件装入 找到下载,下载的文件找找,忘了下载到哪了,就原来下载过的啊。呃。 work 好像是这里面是有一个的啊。找那个什么呢?找那个堆的藏谱文件。好,这里有一个叫 tam 点 h pro 这个文件的后留名啊,其实你用哪个都可以,用什么都可以后留名,没有也可以 群众打开。好,这个时候呢,他就会把这个整个堆专属文件给打开,我这个堆特别小,所以打开起来特别容易。我再跟你说一遍,一个堆特别大,这个文件就在我的机器上分析起来,一天可能都分析不完。 我们曾经有一个小伙伴,嗯,是我们 vip 的学员,他是那个肌肉,昨天我我我聊过,我跟大家聊过,他一个最专注文件下来,他们频繁 fgc, 他们的办法就是重启一,一直不停的重启,后来他们受不了了,说必须得把这事给解决了,然后我就说呢,等他那个你一定要把这个弹幕文件给我拿下来, 结果呢,他就把当门见拿下来了。那个当门见多大呢?设计,然后我教他怎么怎么样进行分析,然后呢?第二天我在问他分析完了没有,他说还没执行完,嗯,所以这个当门见特别大个的时候,你是很难很难做对他做分析的啊。他看这里,呃,这是生成了一个概 要了,这就不多说了。好,看这个类这个图,你就会发现已经从这就能看出来他的一个担心某,他的实力数特别大。特别多,大小呢?占了多少的内存,在这里都有显示。贝特有多少个实力,十六万个, 什么 aidacher 啊,那个表达是卡丁粉一堆。所以只要这个图一出现,你就会知道哪些个类占的实在是太多了。这个分析就很容易分析了。但文件不能限制大小吗?但文件是你的内存的,堆内存里边全部给你导出来, 那你堆内存多大,你当文件就得多大呀。但是我说的是那个堆内存里面占了多大吗?嗯,实力数,它最好玩的还有一个什么呢?还有一个这个 o q l 控制台,哎,这是很好玩的一件事情,就是你完全可以通过类似于一条 c 口语句的东西去来查询这些个实力, 想想那个面料还记不记得你比如说我要查里边的各种各样的死菌类的那些实力,每一个实力都都什么样的?给我拿出来。 select, let's go, 再来点儿,慢点儿, string, 就是那个,哎,把你的这个死菌类型的各个实力全给你救出来。他是位于哪个类里面的?好,这个实力里面是一个什么情况? 它里面的那个属性是什么?值是什么?你怀疑哪个实力不对你就点去看,这是你有了对专属文件的一个好处,就是你可以用更先进的工具,图形化的这一类的。哎,来看它里边的内容 好了。对专车文件怎么分析?大概的一个过程,网上很多讲那个用 mat 的啊,那个没什么,没什么先进的,我不知道为什么有很多人用 mat 啊,不知道为啥比 jvm 比比这这个 肌肉 bm 也没有抢到哪去。其实最好的工具是叫做 j profiler, 不过这哥们收费了,好像还挺贵的。所以我不太清楚网上为什么很多人讲 mvt 你,你可以完全可以不用。好,那好,现在问题就来了,我到底能不能够随时的就把这个堆给导出一个,导成一个文件导出来,在生产环境里头能不能这么干,绝大多数情况下是不被允许的,除非你们说你们整个的福气是可以被暂停的。 如果是那样的话不行,是其他情况肯定都不行啊。你不能说淘宝这边在对外卖货呢,这边订单还在讨着呢,你直接一个 j map 或者一个 hip damp, 直接就把那个堆给干暂停了。你这外卖我整个暂停了。暂停在干嘛?不停的往外倒数据,十个 g, 三 三十二个 g。 刚才有同学说十九个 g, 多少?多长时间?半个小时以上,这事你能这么干吗?所以你要跟面试关机。 想说我是把这个对于专属文件给导出来的。大哥,你一定要远过去。怎么远过去啊?有几个说法可以说最专业的是很多服务器做备份的是高可用的,你听到这台服务器对其他服务器是不影响的啊,这时候呢,你需要加购的知识,需要了解高可用的这种配置。好,接下来 设定了 he dump on out of memory arrow。 就我刚才说了,那个东西是什么呢?那个东西是一旦产生了 om 之后会自动的产生对战图案件。好,这个可以说就是它确实产生 om 了,但是我告诉你这个说法呢,并不是非常的专业。中小公司你可以这么聊, 大公司你说 om 了才会产生对方文件。别扯,所有的都有监控,他都监控到你内存在不断增长了,马上就会告诉你有问题了,你这个时候还等他 om 呀?不是很专业,但是可以说 因为多用内存增长就会, 但是中小型公司可以说我们中小型公司没有监控啊。没关系, om 了之后他就他才报警了。这个可以,这个没有问题。好,看,这里在线定位,推荐大家用阿斯斯进行在线定位。你怀疑哪个类,哪个程序有问题了? 去观察他方法的执行情况,去观察他整个那个类的各种各样的一些信息,去观察他的代码,还有什么你在测试完全中压测, 这个也可以说,你说呢?你观察到了他 om 就是他内存在不断增长,但是我没有定位出来在哪,我们生长环境中又又不能够随便停,我这怎么办呢?我把同样的程序部署到一个服务器上,然后呢,我在测试环境中对他进行压测,压测之中发现他内存确实该不能到哪,这个时候我可以 把导出来,这是没问题了。今天在听的有面试官吗?啊?几种说法都可以聊。好吧,至少你让你面试官知道啊,你是了解这个命令,那么大家听我说,在你生产环境之中,你怀疑一个带门有问题的时候,看这里又死了。 ps, 二三幺零, 好,再跑起来,我们再把阿克斯挂上。把阿斯斯挂上之后呢,还有一个命令,这个命令呢,他是阿克斯的王炸,这个命令是什么呢?这个命令叫做 jd, 拿来吧, jad。 好,你看他的描述,什么东西呢?叫 decompel class, 这个很简单,就是给他干嘛的呢?做反边 e 这一地呢,其实原来是一个工具的名称啊,他后来用了这个名字了,所以原来那个这一地呢是一个,也是一个反面艺工具。现在呢,其实大家应该都知道啊,就是加把自带的,有反面艺,加把杠 p 就可以啊,加把 p 就可以。呃,他为什么在自带一个 反变异的功能呢?这是为什么呢?我们先来看这个反变异功能是干嘛的。呃,比如说我们还是要买名称啊等等类的名称,把它拿下来复制,我们可以这么把 ab, 然后呢,后面跟我们类的名称连接 喂猪。哎,你会发现他带了件什么事呢?他把这个代码全给你列出来了,看到了吧,那有同学就会说了,这代码我自己都有啊,我还用他在 gad 在那列出来,好,你说是不是啊?同学们,哎,这是什么意思呢?同学们,你们想想看,作为一个超级大型的项目来说, 你不知道生长环境的话,你本身啊就会有好多好多的程序,好多程序员拿着好多的程序往上步数,而且呢,我告诉你,你写的程序很可能被其他人所依赖,也许你在这个把自己的新版本扔上去之后,结果呢,其他人在呃往上那个什么的时候,往上传的时候,他会有能直接把你原来那个老的版本, 把你新这个版本就覆盖成老的了,所以你版本发漏了,版本不对了,那么你现在运行的到底叫的是哪个版本啊?这时候怎么办?用这个命令来观察你到底是哪个版本给覆盖。对,大家听听懂这个意思了吗?所以这个命令还是很牛的。那好,我跟你讲啊,这个 p 的覆盖代码这件事是经常发生的,还有这个代码里头不写注视的这种,给你查一个新闻,看能不能找出来好玩的呢。突然想起来了啊,你找一下 美国成员枪杀同志来自己看看,一名成员拿一把半动手枪,周令四名,四名同学开火是因为这个成员不写注视,不遵循驼峰规则,括号换行,还天天的给兔式干 f, 激怒了行凶者。不知道是真的假的啊,就聊天聊着玩。应该应该是假的啊,开玩笑的好,知道就这么回事就行了啊,不多说了啊。 好,回来回来回来回来。所以这个命令是直接可以 jd, 但是只有这个命令的话,我告诉你,还不算牛。你的你,你们自己想想看,我就算查出来这个代码,这个代码其中有 bug, 我能怎么办呀?他已经上线了哎,同学们,你们平时你们自己写个项目, 然后部署到生产环境之后,呃,里边确实有 bug 了,你们怎么办?你们,你告诉我你们怎么办?你是不是把这个代码本地改好,重新编辑好?编辑好之后呢?再布置上去?对,适量的话,对吧?没错,打补丁。哎,重新上,换下去。

线上环境要定位问题,比如说遇到了 om, 撒个 overflow 啊,堆溢出战溢出,该怎么排查问题呢?本期呢,我们就来聊一聊啊,用一些比较原始的 jvm 的命令啊,来监控加瓦程序的一个运行状态。 我们用的比较多的命令呢,就是 top 命令啊,可以用来查看当前进程的使用情况啊, cpu 占用率啊,内存使用情况啊啊,服务器负载状态啊等等,如果服务器报警啊,可以用啊, top 命令,先看一看到底是哪个进程出了问题。 那么第二个呢,是 gps 啊,和这个零六个字上的 ps 呢类似,可以先查看本地运行了哪些的加法程序啊,我一般呢先用 top 找到建成号啊,然后呢再用 gps 呢去看具体是哪个进程出的问题。 第三个呢是 jstart 啊,这个就厉害了啊,可以用来监视 jvm 的各种堆啊,飞堆的大小啊,内存的使用量。 用的最多的呢,就是看 g c 的一个回收情况,包括一样 g c 啊或 g c 啊啊,什么时候发生的啊,执行花了多久啊?如果你需要啊,做 g v m 调优的话呢,这个命令肯定是少不了的, 他能够帮助我们啊,分析 jvm 设置的参数是否合理啊,选用的算法合适不合适啊,当然,如果发生了 ovm 内存溢出啊啊,他会出现频繁的 gc 码,也可以通过杰斯塔的来检测出来。 第四个呢是 jsark 啊,这个命令呢,主要是来跟踪对战的,一般呢用来查看某个县城包含县城的情况,可以用来监测 cpu 过高的问题,如果出现了 sat over 对吧,咱已出的情况呢,那就可以通过 jstok 来进行问题的排查。第五个呢是 jmap 啊,这个命令呢,主要是用来查看 jvm 的内存使用情况啊,包括黑白总大小啊啊,已使用了大小,空间大小等等。 同时呢,他还会输出对内存中的各种对象所占用的空间大小以及数量啊,比如说,呃,像这个类啊啊,字符数组啊,字符串啊等等 我们常见的大炮文件啊,就是通过 jmap 来导出的。但是呢,这个命令也要慎用啊,因为这个命令呢,在执行的过程中,你的整个的程序它会暂停, 如果你的弹幕文件比较大啊,导出耗时比较高,可能呢,就会对线上的用户呢产生影响。所以呢,尽量还是在测试环境来操作啊,不要用在生产环境。好了,本期的视频呢,就这些了,如果您对本期的内容呢有任何疑问,欢迎大家在评论区给我留言,谢谢大家!


在 pison 开发之中,经常使用 pip 命令来安装第三方库,不过你有没有想过第三方库被 pipe 安装到哪里去了?比如我用 pipe install 来安装著名的框架装狗,通过 pip 命令不仅能自动安装库本身也能够自动完成依赖库安装,在余下的就是等待安装完成了。 如果你没有修改排省的安装路径,那么排省的安装路径一般是在 c 盘用户当前用户名目录,我这里的用户是入城进入这个目录, 网上情况下你会看到一些文件夹,这个时候需要先在查看里边开启显示隐藏文件的这个功能,出现了一个隐藏文件的 app det, 进入这个 app det, 进入下面的 logo, 找到 到一个比较 programs 这样的一个目录,然后再进去找到拍摄,再进去就是拍摄呢,安装目录了,就是拍摄三点九,在这个目录下面找到 areb, 然后接着进去在其中找到 setpacs, 这个就是保存第三方库的这个目录。 对一个库来说,装完之后会生成两个围内夹,一个是直接以库的名称命名的,这里存放的是库的主程序, 另外一个就是带 dess 的 info 的命名的,这呢存放的是发布的程序,通常在运行的时候就是运行的主程序。另外还有一个文件夹,就是在安装陌路下面呢 scraps 这个文件夹, 这里呢存放的是第三方库,如果有应用程序需要可以运行的,比方说蒋狗这边有个蒋狗埃,里面可以 直接执行的。类似于这样的程序是存放在 scrap 的下面的,便于直接运行。我们知道了库程序 i 方的路定结构,实际上在开发过程中,如果需要,可以针对项目自行变化修改库里面的内容,以适应项目的需求。


今天我们讲一下这个扭曲的这个命令啊,扭曲在哪里呢?在我们这个修改里面的修改器列表里面啊,那首先呢我们先创建一个物体啊,创建一个对象啊,先创建一个长方体啊,我们保证他这个是一个正啊,正的这个长方体啊,怎么是正的呢?就是上面是正方形, 有时候我们给他啊宽度十啊,高度十啊啊,就是给大家演示一下啊啊,这个数值呢,也是根据我们自己需要的场景去啊,根据不同场景去调整就可以了啊,只是介绍这个物体的这个命令的功能性啊,延展性啊。那么首先我们创建了这个物体以后啊,可以给他多增加几条分段啊, 横着竖着给他来一条,然后啊横着的这个呢,哎,给他多增加几条啊,让他看的比较正啊,标准啊,不能说标准,就是啊都像像是一个这个正方体啊啊,然后这样的话我们再去操作啊,就比较方便啊啊,然后我们嗯去找到这个扭曲的这个命令, 这弯曲,然后扭曲啊扭曲啊,那第一个呢是扭曲他的角度,对吧?那我们调整了这个角度以后可以看到啊,这个扭曲的命令呢,就可以把他这个长方体的扭成这样的效果啊,那么下面有一个什么呢啊?下面有一个偏移啊,那偏移是什么意思?也就是我们扭曲的角度啊,都往上推移啊,就偏移到上面啊,下面这个效果呢都对接到上面啊 啊,就是以这一段,从这里到这一段啊,有这种效果,下面都是啊过渡过来的这种盐有有这种过渡的这种效果啊啊就是这个天意根据我们不同场景不同需求啊去调整啊。嗯然后 那么下面是有限制的。限制无非也就是说我们有这个功能啊但是我们需要啊去限呃在特定的时候呢我们限制了他的这个呃效果啊比如说我们刚才去调整上面是有的比较厉害但是我们在这里呢就是控可以控制他的这个呃 实现的这个效果啊到哪里结束啊。就是这个下面这个参数下面这个啊一样的啊一样的啊。从哪里开始从哪里结束啊。这是一个限制效果的啊。一 但我们不会用到这些东西啊一般不会用到这些东西那主要用的也就是这个扭曲和这个偏移啊。那我们如果扭曲的比较标准的话那么直接哎就用上面那个扭曲他的角度就好了对吧扭曲他的角度就可以达到我们想要的效果啊。啊那除了这样啊那我们还可以怎么定好这个工具呢啊那比如说我们这这个是什么啊长方体对吧啊我们可以用啊一根圆柱啊 原著去达到我们想要的这个哎效果啊。啊那我们首先呢哎复制出来一个啊复制出来一个啊然后给他附加在一起啊在修改里面啊转为可编辑多编辑找到附加啊附加在一起啊然后再按住 shift 啊拖动我们这个多层楼啊给他复制出来一个啊这样呢他变成四根的对吧? 变成四根了啊然后呢再给他怎么样附加在一起啊达到这样一个效果啊。那尽量的让他哎闭合在一起啊来看一下啊,他有没有闭合在 接下来将它挨在一块啊? 哎,好,这边呢,就是啊,然后呢?哎,我们选择对象啊,把它坐标轴调整到中心,然后我们再去选择啊,他两根三根都可以啊,然后我们再去找到我们的修改里面修改器列表,然后找到我们这个扭曲 啊,找到扭曲啊,我们再去给他扭曲一个角度啊,这个有点多了啊,你看这种呢,我们就可以哎,达到这样的一个效果啊,这就是根据我们不同场景的需求需要。哎,去哎,做了一些延展性的。呃,效果啊啊,一根也可以操作,多根也可以操作,根据我们啊,还是那句话啊,就是我们啊需求去 啊,想到这个工具去用到他啊,希望可以帮助到大家啊。啊,那这个扭曲和啊,那这个弯曲呢就讲到这里啊。

嗨,大家好,我们今天来看一下秒点指令的使用。在讲秒点指令之前, 我们先看一下如何得到一个确定的点,比如我们现在想得到一个点是一二,如何得到呢?这时候我们就会使用到指令栏,在这个位置 输入冒号后面这个框子,我们把它称之为是指定栏或者是指定框,我们在这里输入一二,然后确定, 这时候在绘图区当中就会生成一个点,这个点系统会自动给他一个名称叫做点 a, 他的坐标是一二。在这里我们需要 需要注意的是,在输入过程当中,我们需要在英文状态下输入,如果在中文状态下输入一些符号的话, ggb 他是识别不出来的,比如 我在这里面输入一二,这是在中文状态下输入的,然后点击确定,然后系统就会跳出来一个错误,让你 检查输入的内容,那这时候呢,我们用英文状态下输入就可以了,然后确定 就会得到一个点。另外一个我们在输入的时候,我们刚才是没有对他进行命名,然后确定了之后,系统会自动对他进行命名,那如果我事先想对他 进行命名的话怎么办呢?那我们可以在输入的时候注意,比如说我们想得到一个必点的坐标是二三,那我就可以在指令栏当中输入 b, 然后冒号二三,然后确定 就会得到一个点的坐标叫二三。我刚才在输入的时候是输的是 b 冒号,那你也可以这样来输入,比如我想得到一个点的坐标是三四,是 c 点坐标,我可以用 c 等于三四,好确定, 就会得到一个点的坐标是三四,也就是我们对点进行命名的时候,输入的时候就命名的话,我们可以使用名称加冒号,或者是名称 加一个等于号这样的形式对他进行命名。另外一个我们需要注意的是, 对于点是这样命名,如果对于别的几个对象命名的时候,我们基本上是使用冒号来进行命名,比如我们想得到一个圆,那我们就可以 用 c 小 c 冒号,然后 x 方加上 y 方等于四好确定,这时候我们就得到了一个圆 c, 刚才我们输入的时候就是小 c 冒号,这时候你就不能够用小 c 等于号来进行输入。另外一个对于点的输入的话,跟我们数学当中点他是不太一样的,比如 我们想得到地点,在数学当中我们有这样的一种表示,就是地,然后是二三, 后面没有冒号,也没有等于号,这是数学在书写的时候,但是在我们的 ggb 输入的时候,我们不能这样输入,你如果你这样输入确定了之后,他会跳出来一个未知指定地,那如果我们想要水 呃得到地点的话,我们加一个冒号或者等于号就可以了。好,这是关于确定点的输入。好,下面 我们来得到一些特殊的点,这里我们就要用到秒点指令,用秒点指令秒点, 我们在指定栏当中输入秒点,他会自动跳出来四个秒点指定供你选择,我们一一的来看一下。第一个秒点指定 直接就是一个几何对象,意思就是在几何对象上进行描点,比如我们先得到一个几个对象,我们先用直线工具 啊得到一个几何对象,就是这条直线,然后秒点指定这个几何对象,我们改成这个直线,在这里他叫 f, 说 f 确定,这时候就会生成一个 c 点, 然后我们来看一下,形成一个 c 点,这个 c 点就是在这条直线上,你去拖拽他,你会发现这个 c 点始终在这条直 现场。再比如说我们做一个圆,这个圆叫做小 c, 然后我们用秒点指令把几何对象换成小 c 确定,这时候就生成了一个 f 点, f 点是在这个圆上,你拖拽他,你就可以发现他始终是在这个圆上的。这个几个对象可以是 直线、线段、射线、折线啊、圆,包括圆弧、圆锥、曲线、函数等等。另外一个也可以是多边形,比如我们先做一个多边形,然后我们用 秒点指令,这个多边形的名称在带数据当中,我们可以看到是叫 t 一,我们输入 t 一确定, 这里就会有一个点叫借点出现,好在这里,那这时候的描点描出来的点是 什么样的点呢?我们去拖动他,就会发现这个点始终是在这个多边形的边界上变动,也就是这时候描出来的点是三角形的借点。好,这是 秒点指令。第一个,那第二个秒点指令,我们来看一下后面跟的是有数 去数组列表什么意思?那首先我们要清楚列表是什么意思,先把这些先删掉,比如在这里我们先构造三条线段, 然后在指令框当中输入一个花括号,这三个线段的名称分别叫 f、 g、 h, 那在画框里面我们就写上 f、 g、 s 确定, 这时候在代数曲当中我们可以看到一个列表叫 l 一,我们可以双击一下,看到他的定义,这个就是 l 一,这个列表里面有 三个元素, f、 g、 h, 有这三个线段构成的一个列表,然后我们在指令框当中输入秒点,用第二个指令 秒点指定,后面我们将它替换成 l 一确定,这时候就会得到一个记点,我们拖拽 会发现这个祭点无论怎么拖转,他始终是在这三条线段上变动,换句话说, 这个祭典他是在这对于这个列表当中的元素进行的描点, 所以这个祭点始终是在列表的元素上。好,这是第二个指令,我们再看一下第三个指令叫几何对象入禁止,这个是 用到的比较多的。也是呢,可能大家在以后的学习过程当中要重点去体会的一条指令 他是什么意思。首先你要明白路径直的意思是什么,在这里路径直的意思 指的就是对向上的,也就是点在对向上的位置,我们可以把它称之为路径值,其中这个路径值它是介于零 到一之间的,根据对象不同,这个路径值的规定,市场相对来说比较复杂。我们在这里面只讲一个线段啊,这个几个对象上的路径值的意义。 好,我们先把这些先删掉,比如我们现在先用线段工具得到一个线段 ab, 我们现在秒点几个对象,就是线段 f 路径值,在这里面我们输入一个零确定, 我们会发现出现一个 c 点,这个 c 点在哪里?你会发现这个 c 点就是在 a 点这个位置上,也就是线段 换 f, 当路径值为零的时候,线段 f 上的点其实就是他的起点,我们再输入指令秒点,假设路径值我们变成一 确定这里生成一个地点,地点你会发现地点是在这里, 他跟必点是重合的。换句话说,当线段上的啊,也当路径之为一的时候,线段上的点 事实上就是这个线段的终点,在这里面就是必点。如果你再输入一个叫秒点 几何对象是 f, 路径只是零点五,确定,这时候你会发现 e 这个点是路径值为零点五的点,而这个点在哪里呢?是这个线段的中点,我们可以再来看一下秒点 几何对象仍然是 f, 路径值是三分之一,确定会得到一个 f 点, 在这里 f 点是路径只为三分之一处的,这个线段上的点他的位置在哪里?他的位置是 ab 的三等分点,而且是靠近七 起点的三等分点,那另外一个三等分点你可以这样得到,秒点几个对象是 f, 路径指示三分之二,确定 你会得到一个记点,这个记点是他的另外的一个三头门点。这样大家是不是就可以理解一下路径值,首先他的范围是零到一之间,而当当这个路径值 去取值的时候,取零到一当中的某一个值就会对应了对向上的某一个特定的点,对线段来说,那就是从起点到终点,他的路径值也就是从零到一 来进行变化的,这个是非常重要的一个内容啊。至于说其他对象中的点,路径值到底是怎么回事, 这个是相对来说还是有些复杂的,大家具体可以参照一下华南师大肖建伟老师的总结文档。好,这是第三个瞄点指令,我们再来看最后一个瞄点指令, 叫点项链,这个指令将会得到有已知点平移已知项链后的固定点。什么意思? 我们首先用项链工具找到一个项链,在这面叫做项链优啊,我们在代数据当中可以看到 叫项链优,现在我们用这样的一个工具点,我们假设是 a 点平移项链优,好确定你会发现就会得到一个这点,这个点, 这个点是怎么得来得来的?他其实就相当于有 a 点 沿这个项链的方向进行平移啊,平移这么多个单位和方向之后得到的一个点,如果你把这个项链拖拽的话,把它的起点放到 a 点的话,你会发现他的终点刚好是我们得到的这点, 这世上就是一个平移点啊,平移,按照一个项量平移之后得到的一个。 好了,对于四个秒点指令,我们就做这样的简单的说明,说明啊, 应该这些指令呢,相对来说都是比较常见的啊,以后大家在使用过程当中啊,去逐渐的去体会就可以了。好了,今天的分享就到这里,感谢聆听,再见!

扩展模式中 s 命令的使用方法是什么? s 命令代表着是替换的意思,那么有三种用法,一个是 s 一替换二啊,二替换一就后面的替换前面的,还有一个是 s 二替换一后面加了个 g, 还有一个是百分号 s 二替换一后面加个 g。 什么意思啊?咱们一个个来。我先在这边搜一搜,我搜到一个叫 permit 注册 logic, 那么如果我想啊, 把这个 yes 换成 no 怎么办呢?我就可以写 s yes, no。 回车,你看一下这边是不是就给我替换了。好,那么在接下来我再找一行的,我找这一行一百三十六行, 我想把这一行里面的 l c 全部换成 p c。 好,这个时候你可以怎么办? s 杠,你不是要换 l c 吗?我要换成 pc, 然后你后面加个 g, 加个 g 就是把整一行里面所有的 lc 全部换成 pc, 你可以看一下就变 pc 了吗?那么好,再来一个你的冒号百分号 s, 这什么意思呢?最后还加个 g, 这个代表在整个文档里面。比如说我要把整个文档里面所有的 yes 全部换成 no, 这个是整个文档范围内的,你就是加一个百分号。回车下去,你可以自己看一下,所有的 yes 全部变成 no, 这个里面不再会有任何的一个 yes。 我搜给你们看 yes 有没有了?没了,没有 yes 啊,没有办法找到参数。 yes 看到了吗?

最近有很多朋友私信我问 a k g 十自动输出报告插件怎么使用,下面我将详细介绍这个插件的使用方法。双击点一手的 a、 d、 d 硬文件, 点击安装按钮,安装成功。打开阿克迈普,找到自定义模式,并点击选择命令选项卡,找到 add 硬空间长,按输出报告按钮并拖拽到工具条中,工具条会多出一个工具,点击它,打开输出报告界面, 点击截取图斑,设置截取图层,依据制断,截取出来的图片将以依据制断进行命名。设置截取范围输出路径,点击确定按钮,截取图斑,结果如下所示。 接下来我们准备一些现场照片,每个图班可能有多张照片放在同一个文件夹下,以 标识码对文件夹进行命名。我们新建一个报告模板,命名为测试文本,内容如下,什么意思呢?比如说我要把标识码放到报告中,那么我需要在模板中定义一个打脑括号文本杠标识码这段, 当然我们也可以把模板做成表格。接下来我们来看看图片是如何插入到报告中的。刚才我们准备了影像图和现场照片,我们需要建立两个字段来存储影像图和现场照片路径,添加字段名称影像图, 打开自动计算器,设置成影像图的绝对路径,我们复制文件夹路径,从这里可以看出影像图的绝对路径是文件夹路径加标识码,点 jpg 双引号文件夹路径 加上标识码,加点接皮机影像头,路径如下。然后我们再新建一个这段用于存储现场照片,打开这段计算器,设置为现场照片文件夹路径,复制文件夹路径,从这里可以看出,现场照片文件夹路径为文件夹路径加标识码。 设置为文件夹路径加标识码。现场照片如下,我们打开报告模板,对于影像图来说,影像图这段设置的是影像图片的绝对路径,因此 模板上我们填写刀佬括号图片文件杠。影像图。对于现场照片来说,现场照片这段存储的是图片文件夹路径,因此模板中设置为刀佬括号图片文件夹杠。现场照片 模板制作完成后,点击输出报告按钮,设置依据图层,依据制断报告,将以依据制断进行命名。设置报告模板输出路径,点击立即生成报告按钮,生成的报告如下,报告制作完成。

本期视频主要讲解拼命令的使用方式和介绍。拼命令经常用来检测局网内的网络信号发送与接收,以及网络测速等等,还可以用来判断网络是否存在故障,这是我们运维人员最经常用到的命令之一。 首先我们来到电脑桌面键盘上输入 win 加 r, 这时候会跳出运行的窗口,我们再输入 c、 m、 d 回车, 这时候就会跳出我们的命令窗口,我们接下来来输入我们的拼命令,我们输入拼 空格,这是空格,以后我们可以选择拼我们局域网内的 ip 地址或者公网里面域名的地址。我现在用百度来作为一个举例,我们输入百度的域名,我们在这个格 合适的情况下,我们点击回车默认版会回来给我们的字节是四条,可以看到这四条字节都分别分别代表着什么呢?它代表着 这段呢,代表着百度的服务器其中的一台服务器给我们的数据交互,也就是我这台电脑现在访问百度的这台服务器,服务器呢,给我反馈回来的结果,他给我反馈回来什么结果?他回复我字节三十二字节,一般默认为三十二的字节时间呢,代表着 我们的终端设备访问,百度给我们回来,到我们终端的时间通过我们的电脑发送到路由器,从路由器发送我们的请求给百度的服务器,而百度的服务器再反馈回来给我们的时间,这个 t、 t、 l 代表的是时间生存值,该字段词 定 ip 包被路由器丢弃之前允许通过的最大网段数量。我们这时候在窗口内再输入聘空格,杠问号,这时候会反馈回来,什么反馈回来,他其他都是一个使用方法, 具体的你们操作的时候可以看一下,可以更深层次的理解这个拼的一些方式。 然后我们再输入 c、 l、 s 回车,它就清空我们所窗口所显示的所有东西。 我们经常使用的命令参数是杠七,杠二、杠 n, 还有 connat, 还有杠 l 等这几项,下面简单介绍这几个参数的使用方法。我们来实操一下杠 t 的一个操作,我们在这窗口内输入拼空格,再输入百度的域名, 然后再空格杠七,杠七表示的是不断向目标地址发送数据包,直到我们强迫他停止,他才会停止。你看现在的一直在拼,我们默认一般是四条反馈结果,但是他现在在拼,这个方式用于抓我们的一个丢包是比较好用的。 然后如果我们需要终止发送数据包的话,我们就按下 ctrl 键加 c 键,他就停止发送数据包了。你们可以大概看一下,我们再输入域名,这时候我们空格,输入 杠 n, 杠 n 后面再空格,我们这时候这个意思就是我要自定义给我们发送多少条数据包,我以八条为例,那么我就在杠 n 后面输入八,再按回车,这时候他返归回来给我们的字解是八条,大家应该明白了,来我们接下 来看一下杠 l 的部门。聘输入域名,这时候我们输入杠 l, 然后我们在后面再输入一百,这时候这个一百代表着自己的大小,我们可以根据我们后面的 数据包来根据来反馈回来多少字节,一般字节默认是三十二的字节,那么我们在这边输入个一百的话,他反馈回来给我们的字节是一百, 然后我们再按上键,我们再一直拼,还是一样的方式再杠七, 那么他反馈回来给我们的字节就没有限定了,就是反馈回来给我们的结果就一直在一直在拼给我们看,然后还是刚才的状态,我们输入 ctrl 加 c 就终止。以下是聘命令的大字操作,感兴趣的我接下来会分享更多咱们的 cmd 命令字节的一个使用方式。