好,那我们开始啊,那这个就是我们刚刚讲的那个脑图哈,我现在特别喜欢拿这个脑图来给大家做分享,为什么呢?因为这个相比 ppt 来讲的话呢,它的知识点呢,它是一个竖型的结构, 所以可以做到我们思路的一个就是线性的扩展跟细化啊,而且在这里边我们既可以加代码,又可以加链接啊,比如说这里边我们可以加链接,对吧? 然后呢我们在实践过程里边呢,你看这里边我们还可以加代码,所以到时候我我把这个脑图分享给大家,大家直接通过这个脑图就可以按照我的思路来进行学习了,我们不需要再从额外的跟踏板里面去拉代码,也不需要 去手动输入什么链接,我们只需要拿到这张脑图,然后呢就可以在这里边 链接到相关的这个知识内容,也可以直接呢去找到我们的整个这个原代码,对吧?所以这样非常的方便。 好,那我先总结来看一下啊,那上节课我们讲到了这五个这个追东框架,那今天呢,我们主要来讲一下这个第一个追东框架叫 ft。 好,那 f trace 的话呢,我会从以下几个方面来讲哈。第一个呢,这块是他的一个介绍,那 f trace 的话呢,他可以销售,他可以消费的这个试件员呢,就包含了 trace point k problem 和这个 app problem。 那如果大家对于这个试件员还有一 问的话,那么请大家再下来再翻看一下我们的这个前面的课程,我们在前面课程里边有给大家讲这个内核知识的,这这几种事件原基本上就是硬件事件,还有静态抗争,还有这个动态抗争啊, 然后呢,他是基于这个第八个 fs, 那第八个 fs 呢?他也是一个内存的这个文件系统啊,那他基于第八个 fs 怎么了运作呢?啊?这个就是我们后面要讲的这个实践课程了, 那基于 fps 能实现什么目的呢?他可以实现对热点函数的一个详细的一个追踪分析,比如说我们在 内核,当内核里边出现了性能平静的时候啊,一般的套路是这样的,我们会先通过泼妇相 找出那些热点函数,然后的话呢,我们再通过 f trace 呢,再对这些热点函数进行定量的分析,所以这也就意味着 f trace 可以执行和跟踪内核里边的某一个 函数的一个调用过程。然后呢,他可以把这个函数在直接过程中的 吊用的其他的函数,甚至是其他函数调用的函数都打印出来,并且把他们执行所花的时间呢也打印出来。 所以通过这种方式,我们就很可很方便的可以查看某个热点函数他的性能开销在哪里,从而呢帮助我们定位性能的平静。好了,那这个是 app 推子一个总体的介绍哈, 那下来的话呢,就是前端工具啊啊,结合我们前面那张图哈,我们再讲追踪系统的时候呢,我们提到了三大件,第一个是尾巴的 sus, 第二个是福瑞,呃,那个吹吹死你,福瑞木沃克。第三大件呢,就是使用吗?对吧? 那任何一个工具啊,如果要想广泛的被大家使用,第一个特点呢,他必须要让我们可以非常方便的去使用他啊, 那既然是要非常方便的使用它,那必然它就有相关的前端工具啊,因为我们总不可能说为了 跟踪内核再写一个驱动去达到这样的目的,对吧?所以的话呢,他提供了相关的一个强通工具,那这个强通工具呢,他也是跑在用户空间的啊,那不管是内核开发者还是普通的应用程序开发者,他都可以非常方便的去使用这些 强调工具来做分析和调试。那这个强调工具的话呢,有这么几个哈,第一个是第八个 fs 啊,就是通过它里边的一些文件啊,来做这个调试跟分析。怎么做呢?我们一会来看。 那第二个呢是 choice cmd, 那为什么会有 choosecmd 呢?我们一会再讲。好。第三个是有一个泼妇兔啊,那这个的话呢,他 是 ltress 和 prof 疑问头的一个包装器啊,所以呢,从字面意思来,从字面意思上来看的话呢,他可以实现什么呢?他可以实现啊, ftrusse 和 profef 疑问头的一些相关的一个功能啊,那在这里边的话呢,我附上了他的一 一个给子的地址啊,所以大家如果感兴趣的话呢,可以进到这里边来看一下。 好了,我们先来看一下第一个啊, aptress, 刚刚讲到了 aptress 可以分析某一个内核函数,他的各个字函数,也就说他的这个函数题里边的一个 呃,性能平静在哪里,对吧?那怎么做呢?我们可以来简单的来在我们的这个系统里边做一个实践啊,那实践之讲的话呢,我们来看一下啊,我的系统里边呢,我的那盒版本是多少?是五点四点零,对吧?五点四点零。 好,那基本上来讲的话呢,四点九点差以上应该都可以哈,我们先来看一下这个整个时间过程,你看啊,这个 实践过程其实很简单,我们不需要大家再去别的地方下代码啊,只要拿到我们这个思维导图,然后点这个东西进来哈,这个导图里边呢,只要是带这个红旗的,都是实践,都是实战啊,我们点他进来的话呢,就可以看到整个过程了。 好,我们先进到他的第八个 fsm 路里边去, 好复制,对吧?然后进来。咦,没复制上哈,等一下啊, 那我这样复制好了, 好了,进来以后呢,就进到了这个 f trace, 他的一个这个第八个 fs 的一个目录里边了,因为它呢是基于第八个 fs 来工作的,这个就类似于我们的 csfs, 我们通过 csfs 是不是既可以配置内核,也可以从内核里边获取一些输出信息呢?对吧? 那 ft 呢?就是用类似的原理啊,我们通过控制它里边的某些文件来配置它,然后从它里边某些文件读取呢,来得到内核的一些调试跟踪信息。 好了,那我这里边的话呢,这个第八个 fsfs 是已经挂载起来了,所以的话呢,你可以看到 这里边下信息,如果你没有挂载的话呢,你就看不到这些信息了。那这个时候怎么做呢?就需要你通过这个命令手动进行挂载啊?这第一个,然后 第二个查询这个命令他支持的一个跟踪器有哪些?那很简单, cit available 这个吹口啊,那这里边就是他的一个跟踪器,我们常用的跟踪器呢,一个是什么呢?一个是方神,一个呢是这个方神,这个 grow f 还有别的更动器啊,那么这些更动器的话呢,其实也能实现内核相关的一些性能调试哈,那大家的话呢,可以在基于我的讲解之上的话呢,进行一个扩展的一个思考跟学习。 那那一盒那方式呢,就表示跟踪函数的执行哈,然后这个呢就表示是跟踪函数的调用关系,有什么区别呢?跟踪函 的对应关系呢,就可以知道这个函数下面他又掉了哪个函数,然后呢,那个函数下面又掉了哪个函数,所以呢,他会展示出那盒里边的函数的一个跟踪链条,所以这个对我们平时的这个实际的场景来讲是很有帮助的,对吧? 然后下来我们看一下内核支持的内核函数和事件哈。呃,内核函数呢,就是内核里边的函数名,而事件的话呢,是内核里边预先定义的这个追踪点啊,那关于这个 tracy 的吹死你的这个跟踪点,吹死吹死,一问他。好,那么我们之前详细讲过哈,我们之前有对着代码来,大家看什么叫吹死一问他内盒里边哪些函数里边带了吹死你的?其实你只 要查看他的函数的名字里边是不是前面带 taste 的,你就知道了,对吧?好了,这是第第三步,查看那盒函数,好,我们来我们可以看一下啊, cat available 方审好,每种框架里边他都定义了不同的呃,每种框架呢,他都支持不同的这个方式啊,所以通过这个呢,就可以看出我们系统里边的 f trace, 他支持的这个支持跟踪的内核函数有哪些? 还有一个事件哈,那盒函数跟事件是不一样的啊,看一下他所知识的这个事件。好,我们上节课我们之前讲这个疑问的作死的时候呢, 我们带大家看了什么呢?看了一个 reseve skb 的一个内核事件,对吧?我们来搜一下,看有没有 好,是不是可以看到呢?对吧?这里边可以看到他就是因为 f trace 他支持这个内核里边的这个事件哈,而在 natives receivedskb 里边呢,他定义了一个这个内核事件,所以这里边就可以看到他, 那我们通过 fps 呢,就可以去跟踪他,然后呢下来的话呢,我们就可以去设置追踪函数了。 好,我们把我们要想跟踪的函数呢,把它 l 口到这个文件里边啊,那这个文件的话呢,就是第八个 fs 里边的某个文件啊,那其实我们把它 l 进去的时候呢,他就 会改变内核里边的这个行为,内核呢会把写到某个缓出去里边,那后续呢,就会基于这个函数呢进行一个追踪了。好,接着设置追踪器 是什么呢?是翻个身 grif 表示呢,我们要对这个函数进行什么呢?进行函数吊用的一个追踪。 好,那接着的话呢,这个也是这个设置那个内盒的一个这个,呃,钓鱼广西追踪哈,然后下来的话呢,就可以开启追踪了。开启追踪好,然后我们执行了一个什么呢? f 一到它哈,那么写到它里边以后呢,那么内核里边就会开始追踪了,然后呢 f trace 的这个 free walk 呢?就开 开始工作了。好,接着的话呢,我们执行一个命令啊,因为我们要追踪,怎么呢?追踪 csop, 而 ls 的话呢,他其实会打开文件, 他他会打开目录,那打开目录的时候呢,其实内盒里面就会执行都 cs open, 所以我们执行这个行数呢,是为了处发这个追踪行数,当然了我们不执行他也是可以处发的,因为内盒里边有非常非常多的应用程序,这些应用程序呢,他可能也在打开文件。 好,然后的话呢,停止追踪,停止追踪, 停止追踪之后的话呢,内核就会把追踪结果呢存到一个地方,存到一个地方,那么我们呢就可以干嘛呢?就可以去查看 看了,查看了,怎么查看呢?在这个第八个 fs 下面有一个 f trace, 有一个 trace, 那在这里边呢,就输出了他的一个结果, 好了,这个就是它结果,这个结果我们好像看不太清楚,这样的话,这样哈,我们把它重进现到一个文件里边。好,然后呢我们来看一下。 好,然后呢我们来搜一下这个都谁搜 好?这里边这些 cco 盘就是我们 在, 我们在执行这个, 他到执行他中间系统里边所有的吊用,系统里边所有的这个都 csopen 吊用。为什么这么多呢?因为我刚讲过了,那我们整个系统他是动态变化的,他里边有很多的应用程序, 那么这些用程序呢?他也可能在吊用,他来打开文件啊,所以你会看到不止一个 docsopo, 那我随便挑一个 docsopo 来看一下啊,可以看到哈,你看他这个是他的一个吊用账。好,我从这开始往下看, 往下看到这个地方结束全部是都塞 is open, 它的一个执行的一个过程,然后里边的这些函数呢?就是它 吊用的那些函数啊,这里边你看他首先调到第一级函数是 get 内,然后他呢?又调用了他,他呢?又调用了他,他掉了他,他掉了他,所以这个非常的清晰。而下面的函数呢,你看啊, 这个 gart 啊, usb fd flag 呢,是跟这个贫瘠的一个函数,看到没?然后呢?这个函数里边呢,他也掉了子函数,看到没? 好。然后呢?下面这个的话呢,又是跟这三个平级的一个子函数,然后呢?这个比较复杂,你看它里边又掉了很多的函数,然后呢,这个的输出呢,也很有也很有参考 价值哈。第一个 cpu 表示呢?表示他所运行的 cpu 的一个 id, 然后这个的话呢,表示他的一个什么呢?他是一个,他的一个 pid 啊,他的一个 pid 啊,就是执行了这个 cc, 执行了这个都 csopen 函数的这个, 这个应用的一个这个 pid。 你看到哈,这里边这个都 ccsoppo 呢,是 cetamd 执行的,对吧?我们再往下看, 你看还有这个办事执行的,对不对啊?所以这里边 你就能看出来是哪些进程执行了,产生了这个都 cs open 的这个系统调用啊。然后呢,你看,最重要的是这一列,这一列就打印出来了每一个函数,它的一个执行的一个时间,你看到没? 所以你通过分析这边的输出,你就知道哪一个函数呢,直接执执行的时间比较长,然后进人的话呢,就帮你定位我们的这个系统,系统的这个性能平静在哪里? 好了,刚刚我在这里面讲到了,这里边会打印出了他的一个子行数,甚至是他的子行数的子行数,那到底是不是呢? 我们看内盒代码来确认一下不就 ok 了吗?我们来看一下啊。 哎,这个大家不好意思啊,因为这个这个系统里边我还没有那盒原代码,所以的话呢,这个问题呢,我就把它教给大家了, 请大家的话呢,就是给大家布置一个作业啊,请大家看一下这个都 csopen 这个的内盒原代码,他调用的这个函数是不是 getty guard on use the fd flag do, flag do filter open? 请大家呢就是下来的话呢,在内盒结合内盒代码呢来验证一下。
粉丝1.3万获赞1.7万

那这个关于这个 e b p f 的前端工具哈,我们刚刚讲到了这个 b c c 工具包, 那 bc 工具包的话呢,它是有一些开发门槛的,必须要熟悉 c 啊, pass, 还要熟悉这个内行的事件和函数特征,对吧?这个 怎么感觉他有点像是这种高射炮,对吧?啊?他是很高大上,但是的话呢,我们可能需要有比较高的这个开发和运维成本。 好,那除了这个 b c c 之外的话呢,其实还提供了一个工具哈,叫 b p f trace 啊,那 b p f trace 的安装啊,这个里边要注意一下,它在 哎,因为他是一个新的一些新的一些工具,所以呢,他在这个不同的版本上呢,他的安装方法不太一样,在十九点零四以上版本呢,需要这样来安装, 就 a p d guard 来安装。那其他的一些版本上呢,它需要通过 snap install, 然后呢还要指定 d v mod 这种方式来安装好。 然后他的这个资料在哪呢?我们还是点开这里边带的这个链接,你一点就到了这个 gate github 啊,然后这个就是它的一个 github 的一个说明啊,它是 one land 的一个工具哈,什么意思呢?你看 我们在前面讲 b c c 的时候,我们要实现追踪,我们是不是得写代码,对不对?那其实 b p f trace 的它也是基于 b c c 的,但是呢,它既做了进一步的一个集成 哈,他为了方便我们去做这个 tracing 哈,讲话 b c c 的开发的成本哈, 他做了进一步的分装,他用于单行程序和短脚柄短脚本,你看单行程序和短脚本总比去开发一个 e b p 呃, b c c 的应用程序简单的多了吧,对吧? 然后呢,它是基于 c 元和 a w k 的哈,我们来看一下啊,你看它怎么使用呢啊?它的使用的话呢,就是 是通过命令行的方式来使用,不需要写代码了啊。然后呢,他一般会通过杠一来指定他要将控的内核事件和他相关的一些打印的信息。 好,所以你看他基本上用的时候呢,都是使用一行的命令行就能解决问题。当然这个命令行里边呢,有杠一杠一里边指定的这些的话呢,这个就是他支持的一些短脚本啊,所以 你要使用 bpl trace 的话呢,那你只要熟悉他的短脚本的这个实现方法就可以了,然后你看它里边也带了很多他相关的一些这个这个兔,那这些兔的话呢,就是他自己的一个实现了哈,跟我们这个 b c c 的那个 to 是类似的啊,类似的,所以这个 b p l trees 看起来的话呢,它就可以。 呃,讲话 bcc 的这个开发成本啊,开发成本它用于单行程序和短交本,所以的话呢,它使用起来更简单一些啊。但是现在的话呢,因为它是一个新的东西,所以它在有些比较旧的那盒版本上的话呢,其实是用不了的,还用不了呢 啊,包括我的这个十八点零四上,现在装起来的话呢,运行也有点问题啊,所以这个的话呢,就不推荐大家了啊,不推荐大家了啊。

然后呢,这个是表示是函数入口啊,然后这个你看 do says open, 对吧?那进来的话呢,又是这些函数的一个他的字,函数的一个调用和执行时间, 好,那下来的话呢,下来我们就针对这个 trace c m d 哈,我们也有一个操作实践啊,操作实践, 我们来看一下这个操作实践哈,这个操作实践的话呢,比较比较简单哈,比较简单啊,还是同样还是 do cs open 哈,来看一下他怎么做,只需要两步哈,第一步 这个 record 杠 p, 杠 p, 然后呢?杠 g 哈,然后呢?这个这个杠 a, 杠对,杠零,等一下 啊,杠零,好,然后呢? l s, 对吧?是不是比前面的这个一大串命令更简单呢?对吧?当然关于这个 trace c m d 啊,它的一个用法,它的一个用法我们在前面呢已经讲过了,并且的话呢,我们把它的每一个命令, 甚至是子命令呢,我们在这个思维导图里边都已经列出来了,当然这些的话呢,是常用的一些命令哈,如果大家想进行一个扩张的话呢,你可以通过问来看一下它的更详细的用法, 对吧?这里边有更详细的用法啊,还可以查看他的子命令的更详细的用法哈,这里边都可以哈,都可以。那基本上的话呢,我们的这个 课程哈,可能也只是给大家带个头,让大家知道这个东西,有这个东西哈,能能满足十万的场景, 当然他还有更多能满足的场景,那这些的话呢,就需要大家自己呢,去,去挖掘啊,去挖掘好,还是讲我们的实践哈,来看一下这个实践怎么做啊?你看啊,想执行这一条命令就够了, 像之前这一条命令就够了。 哎,奇怪了,这里边为什么会是 permission deny 呢?可能啊,有的同学如果自己做的话呢,也会碰到跟我类似的问题,这个是为什么呢? 来想想看啊,你当前的目录在哪里?你当前的目录在 c s 的目录下面,所以呢,它是一个内存的这个文件系统目录 好,因为这个 record 命令,它会产生一个什么呢?产生一个这个, 我们来看一下产生一个 trace 点 deta 的文件,对吧?而你在这个目录下面,其实是没有权限去创建实际的目录实际的文件的,是不是?所以呢,如果你碰到了这个 permission deny 的问题, 那么很简单,我们找一个可写入的目录就 ok 了,重新执行 好了,直接完成以后,你看一下这里边有一个 trace 点 dat, 对吧? trace 点 data 好了,然后呢,生成 trace 点 data 之后的话呢,我们就可以基于什么呢?基于 trace cmd report 来查看啦, 好了就可以看到了,这个就是我们刚刚这个,我们可以把它导出来,我们看一下, 看到了没有哈,你看这个输出啊,跟前面的那个输出基本上差不多啊,但是格式稍微有些不一样哈,你看这里边它统一了 c p u 等于二,然后呢,这个是我们的这, 这个进程 id 啊,进程 id, 然后呢?这个是表示是函数入口啊,然后这个你看 do says open, 对吧?那进来的话呢,又是这些函数的一个他的字,函数的一个调用和执行时间。好,所以你看哈, 这个 trace c m d 好,跟上面的这个通过第八个 f s 的方式去做, 他的目的都是一样,底层实现原理也是一样,但是呢很显然这个 trace m d 呢更符合我们实际的一个使用的一个习惯,也更简单,对不对? 好好。那到现在为止的话呢,我们的这个课程呢,我们的本节课呢就接近尾声了,我们今天呢主要讲了这个 f trace 的这个 free work 哈,以及它的前端工具的这个用法。那相信哈 这个课程以后呢,大家对于调试内核问题和应用程序的问题呢,会有自己一个独到的一个讲解啊,当然这里边你看啊,我们这里边指定了一个 呃,杠屁,但是呢我们实际呢没有演示哈,那么大家的话呢,其实你在课下的时候呢,可以可以拿我们的这个 这个 trace cmd 来追踪某一个进程啊,当然你自己也可以写一个用自己原话呢,写一个用程序,然后呢通过 trace cmd 的这个杠屁命令呢,来追踪你的这个用程序哈,那希望大家的话 能够哈从这里边得到更多的启发。然后的话呢,也希望哈能够通过这个主题的分享呢,能够让大家对这个 linus 的追踪系统有一个更深的了解哈,然后呢同时呢也欢迎大家探索更多的这个内核的动态追踪的这个技术。

当你生病的时候,我们一般都会去医院去做一个检测,医生会给我们用专业的设备去对我们全身进行一个扫描, 当我们的设备出现故障的时候,我们也会用一些专业的设备去测试,去诊断。那么今天我们来分享一个非常常用的功能, trace 功能,它也是一种非常好用的诊断设备故障的工具。 大家好,这里是义工数控,今天我们用几分钟时间来给大家展示如何去用 tress 进行设备的故障诊断,这个视频时间比较长,建议先收藏起来,方便用的时候再去打开去看。 那好了,我们正式开始啊,今天我们的这个 trace 功能演示,我们用一个仿真软件儿自拧吹,自拧吹那个软件大家都不陌生啊,这是一个仿真 n c 的和数控的 一个软件啊,这个 trace 在哪呢?它在 menu 里面,我们点 menu select, 然后我们选诊断,在诊断画面中如果没有的话,你可以点那个小三角啊,点出来, 这边呢有一个跟踪,这个跟踪就是 trace 啊,其实用跟踪是一个翻译成中文的一个结果,我更喜欢把它叫做一个试播器,因为它是可以把一些变量以一些波形的形式显示出来, 所以啊,他非常方便做各个信号之间的对比。那今天呢,我们做一个例子,我们来监控一下一个变量该如何去做,怎么去设置这些功能。 这边呢,我先编了一个程序啊,大家看,我之前编了一个程序,这是一个呃循环程序,我们可以看,当 g 零走到那个 x 零, y 零,然后呢? g 零走到 x 一百,然后 g 幺走到 f y 一百,用一千的速度,然后反过去零和一千,所以他是这样的一个,嗯,从零位置到一百,错在一百,然后以速度一千这么一个变化的一个东西, 我们来监控一下他的实际的轨迹是什么样的,能不能通过锤子功能监控监控出来,我们点他 那么说,既然说到位置是吧?我们要输入个变量,我们要选择一个变量的话,我们点这个按钮就是变量选择。 这里面看到啊,我们有这么多变量,是吧?他先把变量进行一个分类,其实呢,呃,整个锤子功能的使用是非常简单的,这个操作也非常简单,最难的就是那个找变量了啊,我们今天找一个变量,他是一个轴变量, 我们要找的是它的一个位置值,是不是这 p o s i t i o n。 我们看一下啊,这边有一个很多种很多种位置啊,我们看哪个位置是我们要动的呢? 有一个我们要找的是 x 位置,是吧?实际位置 a c d u a l。 因为我之前找过这个位置啊,所以我对这个位置的这个英文单词还是比较了解的,如果是你不了解的话,那么就不太好找了, 我们可以看我们找这个,它是 actual position value for measuring measuring system one, 因为我们只有一个质量系统,我们选择这个 好了,我们是哪个轴呢?我们选择的 y 轴, ok 了,这个变量选好了,这个是这个是我们曲线的颜色啊,我们选择黄 黄色,然后线呢?选择实线还是什么线?我们选实线,这个是显示和不显示啊,如果是选择不显示的话就给他隐藏了,这个是他的一个一个周期,我们选择差不周期就可以了。好了,这个是非常选择的方式,就这么选择啊。 再一个我们看一下第二个按钮设置,设置呢主要设置的是一些什么呢?然后这边是一个启动的启动垂死功能的一个方式,你是按下软件那个启动按钮启动呢?还是如果一个变量等于某条件满足以后就启动, 但是可以多个多个选择的啊,如果我们选这个呢,你就可以做个变量了,假如说那个 r 一等于一百啊, r 一等于一百就启动了这个,嗯,确实这也是可以的啊,我们不过呢我们选择这个,这个是 比较简单的,就是设置这个 interest 功能,你需要激活他多长时间,就说你记录这个变量,你想让他激活多长时间,可以在这里设置,我们这边给他。嗯,设置成十秒,一百秒好不好?一百秒 就说你这个东西他会一直会监控这个变量,知道一般用以后会自动停止,还有保存的位置,是吧? 好点, ok, 确认。就是我们把设置测完了,我们点选项看一下,选项的话都是一些呃,格式,这个没什么啊,就是它的一些显示的方式, 还有那个我们再看一下这个。呃,详细啊,这边详细的话告诉你,我们这个变量啊,他是针对这个变量的详细的信息,我们可以看他这个通道变量轴的信息,测量 系统一的一个位置实际位置的值。这样的啊,然后我们点这个显示跟踪,就显示 shift。 好,我们这个当前我们可以看啊,我们是不是这个轴在动啊?然后倍率是这个这样的倍率,我们打到倍率百分之百,好了,倍率百百分之百了,这把倍率百分之百了,然后我们现在打到打到那个垂死功能监控下, 然后我们启动,启动 trace, 然后这个显示没显示出来啊?差不多行了,我们记录几个数就可以了。点停止好,可以看到了吗? 这个当前的图形已经监控出来了,然后呢,你会看到这个感觉不是很好看,是吧?我们想把它图形放大一点,我们点这个,这就放大了, 你看当前的话,他就是一个实际位置的值,是吧?然后这个比例可以进行调放大,是吧?这样的放大缩小 啊,也可以重新排布,他自己就会排布了,就是那个放大缩小,然后指针,什么意思呀?我们看一下指针,他是啊,相当于我们对这个坐标选取某个点,我们可以通过这个键盘的左右键去移动, 假如说我这个键盘是从我按的左键,是吧?按的左键,我们随便移动到这个位置,我们可以看在这个时间段内,在这个十二秒点七,我们让他显示这个值,好不好? 显示值你看就是在十二秒八的时候呢,他的此时他的位置是四六九九点六八三,我再往后一点,就是说你移移动这个光标呢,他会显示当前我们这个曲线中的一个值, 这样方便你去更近的去快看到他的里面的一个状态变化啊,就是这么用,然后我们还可以放两个,如果你有两个图形的话,你可以监控两个变量,所以呢会有指针壁,两个指针, 现在是一个指针是吧?啊?然后你两个指针的话就这么用两个指针,两个指针干什么呢?主要是用来做这个区间啊,你看两个指针是不是就就会有两个区间呀?那么两个区间就会形成两个他的间隔,是吧? 这个多秒之内啊,他是什么样的变化你就知道了。那么我刚才这个显示的呢?他是一个他的位置值,是吧?位置值,我们再往回看一下, 刚才的图形是紫色,因为紫色不是很明显,我们点个黄色吧,我们看一下啊,变成黄色了,是吧?黄色是不是更好看一点? 觉得那个显示颜色的啊,我们想给他拉近一点,不要让他这个有点太密集了,是吧?我们让他再拉近一点,那就是把 y 给他缩小了,是不是啊?这啊啊? y 是纵向的,我们要把 x 缩小, x 缩小 开始缩小,你看这样缩小了是吧?就这样的话就知道啊,他是这么变化的,扔扔的,先是到一百,然后呢?快速到了零, 脑子只要记到一百,这样玩往复的循环,跟我们的程序是一样的。那这个怎么做诊断呢?怎么通过 trace 做诊断呢?我现在监控的变量是一个实际的位置值, 如果你在监控一个变量,监控一个什么呢?监控一个速度或者电流或者扭矩,那如果有什么撞击啊,或者有什么一些性能不好的时候呢?这个电流会不会波动啊? 电流就会波动或者速度就会有一些变化或者轮廓偏差,就是你监控不同的变量,你可以通过分析变量的一些变化过程,知道你此时的机械状态,知道您此时的机械状态是什么样的, 通过这种方式来进行的分析,所以说这个方式这个用的方法还是比较简单的。最难的部分 还是什么呀?还是我们怎么去找我们的变量,是吧?变量是不太好找的,这就得通过大家去多去总结,都去练习了。如果你想知道变量去怎么找,怎么快速找的话,那么请可以啊,联系我,我这边有一份很详细的 变量如何去找到一个表或者是一个文档方,方便你能够快速的找到那个变量。 好了,感谢大家来观看,如果这个视频对你有帮助的话,那么请点赞关注投币,这里是义工数控,感谢你的观看,我们下回再见!拜拜!


这个刚刚呢,我们给大家介绍了这个 prof 的一个简单的用法,对吧?所以你看这里边其实借助了 prof record prof report 我们就可以去分析啦。啊, 那作为使用最频繁的一个命令 pro for record 啊,我们再来看一下它有哪些更有用的一些参数啊? 第一个杠屁 p i d, 它可以记录啊,记录进程的这个事件哈,记录进程的一些事件,所以的话呢,我们可以通过 prof 呢来分析进程的它的性能,对吧?所以这个的话呢,就非常的有用了,因为 毕竟我们大部分人都是在开发这个用程序嘛哈,然后杠 a 呢,表示从所有 c p u 上进行事件的采集,杠 e 的话呢,表示什么呢?表示采集指定的疑问特,比如说我刚刚在给大家演示的时候, 好,我们并没有指定杠意,那没有指定的话,它默认就是 cpu clock, 就表示呢是通过 cpu 时钟这个事件来进行采样的 哈,一般来讲,我们通过 cpu 的这种时钟进行采样呢,也就足够了哈,所以这里边的杠 e 的话呢,你是可以不指定的哈,杠 g 的话呢,可以启用调用图哈,那指定了杠 g 之后,那么你在 执行 pro report 的时候呢,那么你就可以得到调用对账了,比如说我们在这个例子里边,我们, 我们在这个例子里边,我们并没有进入它的一个调用对账,是不是因为我们没有指定杠 g, 所以指定杠 g 之后的话呢,那么你在这个 pref report 里边就可以进一步的话呢,深入它的子函数进行一个分析。 杠 f 可以指定采样频率,好,那这个采样频率哈,采样频率呢?这个也很重要,采样频率越高,那么可能 prof 它的它本身呢,带有一定的性 能问题,如果采样频率高的话呢,那么他的性能影响可能会大一点,但是如果采样频率太低的话呢,就可能会带来采样不准,对吧?这个可以理解啊,所以这个采样频率的话呢,这个 就可能得注意一下啊,当然我们也可以不指定使用默认的,那使用默认的话呢,那也可以啊,因为一般来讲的话呢,这个默认的值都是相对比较合理的一个值嘛,对吧? 好,那了解了这个 prefer report 的一个用法呢,我们就可以来来做一个,来做一个实践哈,来做一个实践,好,那这个实践的话呢,我们是有这么一段应用程序哈,你看啊,这个这个应用程序代码的话呢,也在这里边, 我们把它拷贝下来,然后呢把它编译一下就可以了。好, purf test 点 c p p。 好了,我们先简单的看一下这个函数啊,这个这个程序哈,这个程序做了什么事情呢?哈,第一行它会打印出它的 p i d, 打印 p i d 呢,是因为我们后续要通过杠 p 来对它进行分析,然后呢 loop big, loop small 这个代码,其实也我也是在网上找的哈,大家也可以找到原型啊,其实无所谓哪个代码啊,只要他能够模拟那种性能平静的代码,我们都可以去 通过 perf 来进行分析。这个 loop big 的话呢,是循环什么呢?循环一百次。这个 loop smo 的话呢,是循环十次哈,十次。然后先来看一下这个 for loop 做了什么事情哈,这个 for loop 的话呢,它是一个二通循环,然后的话呢,在这里边你看 它又会循环它乘以它等于多少次呢?啊?一千万次是吧?所以这个每一个这个 follow 不循环,它会去循环这个 循环这么多次,然后的话呢,再调用 saying 跟扩 saying 得到这个 x 啊,所以当从这个循环次数来看的话呢,这个程序啊,它运行起来肯定是会比较涨 cpu 的,对吧?啊?那, 那我们就来实际来看一下,先来看一下。好,我们先把这个程序呢把它编译一下。 好,编译完成以后呢,我们把它运行起来吧。好,然后呢,得到一个 p i d 多少?三九八三九八四五,对吧?好,然后的话呢,我们执行, 我们执行这个命令,我们执行这个命令 三九八四五,对吧?好,杠 a 表示是在呃将控 c p u 上的所有 c p u 的事件,杠 g 表示说记录这个函数的调用关系。杠 f 等于九十九,表示呢?我们指定了采样频率是九十九,对吧? 这个 sleep 十就表示什么呢?表示呢?它执行采样的时间是持续十秒钟。好,我们来执行一下。 好了,那我们可以看到哈,这个执行完了,对吧?执行完以后呢,我们执行 prof report 来看一下。 首先第一个采样的事件还是 cpu clock, 这没有问题哈,采样采了多少个?你来看一下九百八十七个, 而实际的这种 cpu 的时钟事件是这么多,那这里边只踩到了九百八十七个,为什么呢?结合我们这里边的这个采样 样频率,我们是采样频率是九十九,然后呢我们采样的持续了十分钟十秒钟,所以你想一下九十九乘以十,是不是大概是九百九呢?对吧?啊?所以这个采样的这个 这种个数是九百八十七啊,这个是因为我们指定的采样频率是九十九。然后再来看一下 整个这个应用程序,它的性能平静在哪里?你看百分之四十八的 cp 时间都在运行这个函数,这个函数就是三音函数,对吧? 然后呢这个百分之四十三的时间在执行这个果塞引函数,看到没有?好,然后这里边这个每一列,每一列的关系,每一列的这个解释哈, 我们来解释一下,这个求着呢,表示的是表示的是这个, 表示的是这个, 这个他的什么呢?他的这个子子行数执行的时间,这个是他自己执行的时间啊,因为他这个没有子行数吗?对吧?所以就是他自己看到没 啊?然后这个呢表示是执行啊,这表示表示的是什么?表示的是我们的应用程序的这个命令啊, 然后这个的话表示十二的 object 啊,它可以是库啊,比如这里边的话呢,因为 saying 跟 call saying 它在 libram 库里边,所以的话呢,它就把这个列出来了啊,然后的话呢,还可以 是我们的应用程序的名字,还可以是内核里边的这个啊,符号,对吧? 然后后面这个 simple 的话呢,也不一样,点号呢?表示是什么呢?表示是库,或者用程序里边的这个这个 simple, 然后 k 呢,表示是内核里边的函数, 所以你看这些的话呢,对应的都是内横行数,而这些的话呢,就是应用程序里边那些代码,所以你看你从这个里边分析的话, 你从这个里边分析的话,你就可以发现这个应用程序运行的时候,他百分之四十八的时间都花在了 saying 函数上,百分之四十三的时间都花在了扩 saying 函数上。好, 那这个到底准不准呢?啊?他有可能不准,因为你的采样的这个这个频率比较低,所以可能会有一点不精准,但是呢大概就是这么个情况啊, 那有人说我是不是可以把采样时间设的大一点呢?可以啊,我们可以把它设成九百九十九,是不是?好,我们重新把应用程序把它启动一下,是四零八五四, 是四零八五四,对吧?然后呢我们再采样十分,呃,再采样十秒钟。 好了,采样完成我们再来看一下, 好了,你看哈这一次的采样结果跟上次有何不同?首先第一个这个采样数达到了九 k, 那九 k 呢?是因为我们设置的采样频率是一秒钟什么呢?一秒钟九百 九十九,对吧?然后呢采样了十秒,所以变成了九 k, 对吧?而且随着采样的这个频率的增加,你看到没有,这个时间他们做了一个收敛,我记得刚刚是一个是百分之四十八,一个是百分之四十三, 但是因为随着采样精度的增加,这里边的时间呢,他的这个百分比的话呢,分别跟我们实际的值呢做了一个收敛。 比较高的值的话呢,它往低了一点,比较低的 b 的值呢?它的值呢又往高了一点啊,这个是随着采样频率的增加,它的精度呢在不断的增加啊, 所以你看这个采样频率呢,他在这个我们的执行的函数他的差距比较小的时候的话呢,那么他的这个值的话呢,可能就 比较敏感,就是如果两个函数它的这个热度差不多的时候,那么你可能就需要指定一个稍微比较高的一个采样频率啊,否则的话呢,可能会导致说你的采样不太准。 好,你看我们通过 prof record, 对吧?我们不需要得到应用程序员 代码,我们就可以附着在这个应用程序的这个 pig 之上,然后呢分析他的这个性能瓶颈在哪里,是不是非常的方便呢?

那么这个命令是一个啊,穿丝入他这么一个命令啊,很有意思的一个命令啊,那么这个命令我们说他主要是用于这个网络啊,网络问题的一个诊断啊,或者网络故障的一个排查啊, 那么它是用于显示这个网络数据包啊,然后传输的我们指定主机的这么一个路由信息的跟踪啊,主要就是传输的状态啊,等等这些信息啊,那么这个命令跟这个 windows 下这个啊,这么一个命令是类似的啊, 所以我们使用 trace route 呢啊,主要的用途就是运用网络故障的一个诊断啊,那么它的使用方法比较简单啊,我们最经常使用的几个选项啊,有这么三个,大家看一下啊。 trace route, 那么第一个就是杠 i 啊,那杠 i 就是 interface 啊,其实 就是一个接口的意思啊,那么后面肯定要指定网络接口了啊,他表示使用指定的网络接口啊,然后呢发送数据包进行一个网络测试啊, 第二个就刚 w 啊,刚 w 呢,后面跟上一个超时的时间啊,那么时间是以秒为单位的,是设置这个等待远程主机回应的这么一个时间啊,那么超过这个时间就认为是超时, 杠 s 啊,后面跟上一个来源的 ip 地址,表示设置本地主机啊,然后发送数据包的这么一个 ip 地址啊,就是从我们本地啊,从哪个 ip 来发送数据包的啊, 好吧,这个就是这个 trace root 啊,它的这么一个命令啊,那么最简单的一个用法,大家看一下,我们这块列了这么一个例子啊, tries to root, 杠 et 是零,那也就是我们是啊,通过这个 et 是零这么一个网络接口去发送数据包啊,杠 s 啊,就是指定这个来源 ip 地址,那么这杠 s 一般是如果有多个啊 ip 地址或者多个来源 ip 的话啊, 我们会用这个杠 s 去制定啊,如果服务器只有一块网卡,那不需要制定,他默认肯定是啊,通过我们的这个啊后啊,这个指定的这个网卡啊来发送数据包的, 刚 w 是超时时间啊,那么最后这个跟上啊,这个域名或者 ip 啊,那么他设置的就是什么?就是这个啊,我们要访问的这个啊,一个远程服务器的啊,这么一个地址啊,这么一个地址,那么在这个揣缩 他呢,他这个连接的过程中啊,我们说他是通过一个 smp 去进行连接的啊,是通过 smp 这么一个斜去去进行连接的, 那么在他这个连接的远程主机的过程当中呢,可能有些网络设备,比如说防火墙,他可能会屏蔽这个 smp 的一个通过的权限啊,所以在这个踹死路他执行过程中啊,如果说某某些这个路由节点会出现没有响应的这么一个情况啊, 那么如果这个穿梭 ult 检测到某个节点没有响应,它会在屏幕上输出一个星号啊, 那么就表示这个节点是无法通过的啊,它会有这么一个输出啊。好吧,那么接下来我们给大家看一下啊, tractrl 的具体是怎么来运作的?好,那么就执行一个 tract root 命令啊, tries 啊 root 啊,那么这个命令我们执行一个最简单的它的一个操作吧,就是揣得住它,我们后面不加任何选项啊,直接跟上我们这个路由的一个跟踪信息,比如说我们要访问一下这个啊, 啊,到这个地址啊,到这个域名,那么他的一个路由状态啊,最简单我们就这样执行一下就可以了。求回车看一下他的路由状态啊,好,那么这个没跳啊,就前面这个一二三啊,他显示的就是没跳的一个路由信息啊, 那么通过这个揣得住的,我们可以很清楚的看见啊,就是从我们本机啊,然后到这个我们后面指定的啊,这个地址,他的一个路由状态是个什么样子的啊, 都会显示的很清楚啊,那么行吧啊,我们接下来就简单看一下它的整个过程啊, 那么我们首先看第一条啊,那么第一条呢,当然是这个啊,就是我这个啊,二三二这个机器啊,他要首先啊,要经过我的网关出去啊,那么第一条是经过网关啊,也就是网关这一条啊, get away, 那其实啊,我这个网关是二幺三点五幺啊,就走这个 ip 啊,出去了啊,那么后面这是连接我这个 ip 的一个具体的时间啊,都是毫秒级别的啊, 那么走我这个网关出去之后呢啊,那么接着下来啊,第二条呢,他仍然是一个网关啊,这个网关应该是我这个 idc 机房出口的这么一个网关啊, 那么这是具体的啊, lt 机房出口的一个网关地址啊,那么后面这仍然是啊,连接的这个啊 lt 机房出口网关它的一个延时啊,有多少?这个毫秒 第三跳啊,他应该是跳到了另外一个啊,那么这个具体就不清楚是哪一个了啊?应该是从啊 idcg 访问出来之后,跳到了这个电信啊,或者联通这些运营商啊,他们的一个网管上来啊, 那么这块呢,这个十点,十点十呢,他应该是运营商之间的一个假地址啊,我们看到他其实是个内网地址啊,那么这个应该就是一个运营商售的一个假地址啊, 那么再接下来第四条啊,我们看一下啊,他就显示新号了啊,那么这个新号,我们刚才说就是当他这个啊,不允许这个 s cmp 协议啊,进行通过的时候,他就会以信号来显示,所以这条内容我们无法看到。那么接着下来到第五条啊,又有显示,然后第六啊,一直到第十条啊,都没有内容显示,那说明都是被屏蔽了啊,那么到第十一条啊,我们发现 他又回到了这么一个公网地址上来啊,那么我们可以通过啊,百度去查一下这个 ip 啊,他是属于哪个啊,哪个运营商啊,或者是属于哪个啊,区域的这么一个啊, ip 信息,那么他应该啊就是一个啊,啊,这么一个路由信息啊, 那么再接着下来就是十二、十三等等往后啊,他都是啊经过的这些啊,每一条他所经过的路由信息啊,那么一直往下走啊,那么最后经历了三十条啊,结束 我们这个传字路特,那么到最后一条,我们看仍然没有获取到啊,没有获取到,就是我们最终啊,就是我们这个 ip 地址啊,没有获取到,没有获取到的原因是什么呢?很有可能是我们这个啊,我们这个机器 啊,他也禁止了这个 s m p 啊,所以在最后一条他没有达到这个机器,或者说没有啊,获取到这个机器的一个最终信息啊,最后只能以新号来显示了啊, 那么啊通过这个输出啊,大家应该啊非常清楚的了解,就这个揣索柱它,它就是显示了啊,一个路由跟踪信息啊,就从我们本机然后到达我们指定的某一个啊,某一个主机啊, 那么它的一个路由状态是个什么样子的啊?我们就可以很清楚的看见,所以一般我们说这个 tractrut 呢, 我们可以用于这个问题的啊,网络问题的一个诊断啊,比如我们在运用过程中发现了一个问题啊,就是我们跟客户之间网络延时啊,出现了问题,那么客户说是我们的问题啊,那我们该怎么去解决这个问题呢?那么这个时候我们就可以拿这个命令去排查一下啊, 那么比如说我们排查到某一步的时候,我们发现啊,到这一条他就出现了问题,比如说延时非常非常大啊, 那我们就有理由怀疑啊,是在这条出的问题啊,那么这条我们看一下,不是我们这个 我们自己的这个路由信息啊,比如说是运营商的,那么就基本判断就是我们这块网络呢,是没有问题的啊,可能是运营商网络出现了问题,那么这样就能给客户一个合理的一个交代啊, 好吧,这个就是这个 trace route 啊,用于这个路由啊跟踪啊,包括这个网络故障的这么一个排查啊,非常有用的这么一个命令。

and ask me all and fight and read where there are there i'd watch, but see and the washlet and fart and off sleep and fly alone our rainstock hills the linda on green are the raws and hair we locked it all and want you to go。

我是你们的老朋友小白,今天给大家带来的是利用 fd 中的 fd 脚本实现抖音 pc 网页版爬虫代码地址我会发布到 b 站的公告区和评论区。 准备的工具有,一、谷歌内核浏览器,正已选择三六零极速浏览器。二、配置好的 fd 一个,如果不会配置可以付费找我代码介绍哦。不是, 首先演示一遍,演示一遍,大家看一下效果,看到没 会出现链接,而且是自动刷新浏览器,然后自动出链接,而且还会保存到。嗯,第一盘的抖音目录文件夹下面。好了,我们先暂停 检查一下这些链接到底正不正确。好,我们来看一下。首先主页链接,看一下是不是怪卡影视,果然是怪卡影视,然后下面也确实是他的主页地址, 然后我们再来看看他的视频下载地址,单个视频也确实,然后可以直接下载下来。嗯,然后看看抖抖音文本里面有没有,也有 也有,这些链接都保存下来了。好的,嗯, 为什么要保存主页链接呢?因为大家可以想象一下,假如把知道之前数据全部上传到数据库里面,那么 上传到数据库里面,那么只保存主页链接的话,可以节省开销,不需要每个视频都保存到伏击数据库当中,对吧? 嗯,好了,接下来就讲一下代码更改的地方,首先是这个保存路径, 保存路径要修改一下,如果是 f 盘,然后就写 f 盘,然后 c 盘就 c 盘,或者然后要非中文,然后还是目录,不是文件一定要写成目录的,然后还有就是非中文。好,记得如果改动之后 一定要点击保存脚本,没改动地方就要保存一下脚本,看有没有出错,防止 没出错就好。然后就是这个刷新了,刷新,嗯,也就改成这,大家如果要去掉刷新的话,自动刷新的话很简单,这 双反斜杠,双反斜杠,双反斜杠两个地方一个这个,这个杠必由地歪,然后还必由地歪的下面双反斜杠,这样屏蔽之后点击 保存胶布,那么就会生效了。好,我这还需要给大家 说明一个更改的地方,如果需要自动保存,但是想长一点保,嗯,刷新的时间长一点,那么就这样可以改,改成任意数值,假如我要十秒 给一万,大家可以计算一下,一千就是一秒,大家想改什么就可以改什么,这个是不限制的,想要刷新的快一点,那就两三秒吧,当然也不要太快了,太快了可能会触发抖音的风控的。 好的啊,代码也讲解完,嗯,还有哪里要改的呢?啊,这是保存,保存的东西, 我把作者名字,主页链接,视频标题,视频下载地址都保存下来了,大家如果只要作者名字和作者主页链接, 那么就保留上面两个,直接双反结杠下面两个,大家不需要哪个就给双反结杠哪个,然后 最后一定要保存脚本,每改动一个地方都要保存一下脚本,看有没有出错,防止修改出错了可以马上定位到错误的地方。好的,保存, 现在我就全部删掉,这些该改的地方都讲完了,现在我全部删掉,正式给大家操作一遍如何把代码放上去。 好的,首先打开地址,打开我给你们的代码地址, 然后打开 fd, fd 打开好了,然后就是选择 fd 脚本,这个黄色图标的很显眼的,然后点击勾突,勾突, 点击这个下拉框,然后选择第二个,选择第二个,然后我们首先粘贴第二段代码,第二段代码在哪里? 粘接在哪里呢?这个和这个中间, 中间我用黑色标识,中间就是这段空白区,一定要注意这个好,我们断码片段啊,一定要点击这个 复制,这样才不会复制到啊, csdn 里面的那个啊,原创作者的信息 好复制,然后记着啊,最后一个花括号,然后 oppo res box 前面,然后粘贴, 然后点击保存脚本,看有没有出错,没有出错我们再粘贴下一顿代码。好,没有出错,我们粘贴下一顿代码。在正回放在哪里呢?放到 obpox, 放置画框和画框之间, 直接这个时候我们粘贴片段,一代码片段,一代码片段,一直接 这里 复制,这样才不会复制到。嗯,原创作者信息。好的,然后点击保存脚本,点击保存脚本,然后 ok, 清理清空,切弯刀,落个面板,然后我们把抖音也删了吧,删了好,这个时候我们来刷新一遍,看能不能出现结果呢? 自动出结果,自动刷新自动出结果,自动刷新,自动出结果。看到没?好了我们 就到这里吧。还有就是数数据库, 数据库的话如果需要保存到数据库的话我可能会做,但是最近不会做,做的话我会在 b 站通知你们。嗯,可能需要你们付费一下。嗯, 毕竟只有金钱才能让我有更加有动力去更新这些 b 站的视频,大家可能。好的 废话就不多说了。嗯,不会的就多看几遍视频,如果实在不会的就可以联系我,我向你解答。好的,谢谢大家观看,拜拜。


后台小伙伴,有人问我说,这个 procreate 和那个 tres 究竟哪个好用?我的答案是,要看个人习惯啊。 呃,我个人的习惯是两个都是用的,那么我会用 twice 修改效果图立面,还有平面 percrete 呢,它展现力比较好,通常我会做效果图出稿。 有朋友私信我说想了解光学设计这一块,但是呢,自己没有光学软件,是不是光学软件特别贵啊?确实啊,在某些平台上呢,光学软件卖的有一点点贵,并且我觉得 大家毫无必要去花这个钱,把这个钱能省下来去吃顿好吃的不香吗?所以我在下方跟大家提供了免费的下载链接,大家自己去下载就好了,如果在安装软件的过程中遇到什么问题,可以来找我协助。 后台小伙伴,有人问我说,这个 procreate 和那个 trees 究竟哪个好用?我的答案是,要看个人习惯啊。呃,我个人的习惯是两个都是用的,那么我会用 choice 修改效果图立面还有平面 procreate 呢,它展现力比较好,通常我会做效果图出稿。 u m d e r g r o。 有朋友私信我说想了解光学设计这一块,但是呢,自己没有光学软件,是不是光学软件特别贵啊?确实, 在某些平台上呢,光是人家卖的有一点点贵,并且我觉得大家毫无必要去花这个钱,把这个钱能省下来去吃顿好吃的不香吗? 所以我在下方跟大家提供了免费的下载链接,大家自己去下载就好了,如果在安装软件的过程中遇到什么问题,可以来找我协助。 后台小伙伴,有人问我说,这个 procreate 和那个踹死究竟哪个好用?我的答案是,要看个人习惯啊。呃,我个人的习惯是两个都是用的,那么我会用踹死修改效果图立面,还有平面 pocret 呢,它展现力比较好,通常我会做效果图出稿。 有朋友私信我说想了解光学设计这一块,但是 那自己没有光学软件,是不是光学软件特别贵啊?确实啊,在某些平台上呢,光学软件卖的有一点点贵,并且我觉得大家毫无必要去花这个钱,把这个钱能省下来去吃顿好吃的不香吗? 所以我在下方跟大家提供了免费的下载链接,大家自己去下载就好了,如果在安装软件的过程中遇到什么问题,可以来找我协助。 后台小伙伴,有人问我说,这个 procreate 和那个 trees 究竟哪个好用?我的答案是,要看个人习惯啊。呃,我个人的习惯是两个都是用的,那么我会用 choice 修改效果图立面,还有平面 procreate 呢,它展现力比较好,通常我会做效果图出稿。 u n d e r g r o。 有朋友私信我说想了解光学设计这一块,但是呢,自己没有光学软件,是不是光学软件特别贵啊?确实啊,在某些平台上呢,光学软件卖的有一点点贵,并且我觉得大家毫无必要去花这个钱,把这个钱能省下来去吃顿好吃的不香吗? 所以我在下方跟大家提供了免费的下载链接,大家自己去下载就好了,如果在安装软件的过程中遇到什么问题,可以来找我协助。 后台小伙伴,有人问我说这个 procreate 和那个 trees 究竟哪个好用?我的答案是要看个人习惯啊。 呃,我个人的习惯是两个都是用的。那么我会用踹子修改效果图,立面还有平面 perfect 呢,它展现力比较好,通常我会做效果图出稿。 有朋友私信我说想了解光学设计这一块,但是呢,自己没有光学软件,是不是光学软件特别贵啊?确实啊,在某些平台上呢,光学软件卖的有一点点贵,并且我觉得大家毫无必要去花这个钱, 把这个钱能省下来去吃顿好吃的不香吗?所以我在下方跟大家提供了免费的下载链接,大家自己去下载就好了,如果在安装软件的过程中遇到什么问题,可以来找我协助。

我们测试窗口里面除了能够显示 x, 就是说你的这个测量设备,一被测设备他传输过来的这个数据之外,我们还能够利用 koe 软件进行模拟发送保温, 然后他这个地方显示的这个方向会显示 tx 方向啊,我们来一起来看一看究竟怎么进行操作的。那么目前我这个工程是在运行状态的,他这个我们 ko 一并没有像这个总线上去发送数据,他只是被动的接收,比如说我们这个仪表他传输过来的一些数据,所以说他这个方向是 x 方向, 那么我们怎么能看到我们的 tx 方向的这个豹纹呢?大家跟我来一起操作一下。首先我们要利用到一个模拟里面呢,有一个看 i 机生存器发生器,这个看 i 机发生器是专门用来 来去通过这个看啊,看微设备,看微的这个软件软件去发送一些模拟的一些豹纹,比如说我们可以发送模拟的啊,发动机的一些转速啊,一些车速。 然后你发送完成之后呢,这个地方你能看到他这个刚才发送了一些那个看保文的,比如我点击点击这个时速啊,点击这个转数,点击一下发送, 当发生这个转数的时候,大家看这个,我看屏幕的这个右下角,你看一看他这个就变成两千了,因为我这地方已经设定了他这个转数是两千信号的转数应该是两千,设定好了, 然后转速骑起来之后,我们才能够进行发送他的这个时速信号,点击一下时速信号,我们设置的大概是八十左右啊,实际实际仪表, 实际仪表显示的速度会比我们这个物理数值会要大一点,因为这个是他的这个我们车企里面默认的一个规则,可能是为了安全性 啊,当这个发送之后呢,这地方我们在观察呀,这个圈子窗口你就会发,你就会发现我们圈子窗口里面多了两个数据, 一个是引擎的状态,一个车速啊,两条豹纹对不对?看豹纹,然后他这个你观察一下,他这个豹纹的方向是 tx 方向,看见没有? 数据是 drc, 数据长度是八位,这个就是给大家展示的就是呃,他的这个方向传出方向,一个是 rx, 一个是 ts, 这个一定要搞清楚啊, rx 是指设备 向总线发送的,而 tx 一般来说指的是我们的 koe 软件模拟的一些信息向这个总线上进行发送的。我们看一看确实 窗口的显示模式,我们确实窗口一共支持两种显示模式啊,第一种是固定格式的一个显定模显示模式,第二个是按时间顺序啊进行这个呃,显示的一个显示模式,这个时间顺序呢,就是不停的会刷新屏幕啊,他这个豹纹最新收到了豹纹会不停的在刷新, 那么我们看看固定格式显示模式,这个是我们默认的默认的显示模式,也就是说你的这个片位打开来之后,如果你不做其他的一些设定的话,他原始的模式就是我们的这个固定格式的固定格式的,你看他这个地方,他这个时间也是在发生变化,但是他不会去 把每条豹纹按照时间顺序进行排序,一直在刷屏的状态,同一条豹纹,同一个豹纹啊,它只始终显示在一行,但是呢它这个 对方显示的是最新收到的,最新收到的这个豹纹。第二种显示模式是要点一下这个按钮啊,我们按照时间排序来显示啊, 我们操作看一看,看他这个效果,时间顺序点一下这个啊,你看一下,你看他会按照这个收到了豹纹的前后顺序,然后开始再刷新屏幕,大家看到没有?是这样的, 这个是他这个,呃,天威确实窗口里面提供的两种显示模式, 如果把这个点一下取消,又回到我们之前的那个模式,之前这个模式他有个好处,就是你能看清楚,就是这个现在总今上一共有哪几种豹纹在在传输啊?那这种模式就是按照时间来的话就很花,他这个 会不停的在网上刷新,这个很难去去观察他究竟时啊有有一共有几种吗?报问,在这个总信上进行传说, 所以这个质量这种模式在实际生产过程中,大家根据需要啊进行切换就可以了。更多车载知识和就业问题欢迎私信我们,我们很高兴给您提供帮助。

今天插播一期啊,把我们室内设计常用的这个 app 分享给这个爱好空间设计的宝宝们,还有就是室内设计的啊,大学新生,还有就是我们的客户朋友们啊,首先呢是这个 cd 看图啊, 那就是这个这个 cd 看网这个软件,这个呢非常方便啊,就是有些人不会用这个 ocd 的时候,可以用它来看这个 cd 的图纸。 那我今天主要介绍这个 trees 这个软件,就是我们设设计师经常用来,就是啊,做方案啊,比较方便哈。然后呢他还有这里面有很多的这个模块,比如说像 cbcd 里面的一些模块,就我们可以随随便用啊, 然后用起来也是比较方便的,那么我经常还用它来改这个效果图啊,就是我们阳光的一个餐厅的一个效果图啊,所以非常方便,我觉得,嗯,还蛮好用的。