![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
11
文章平均质量分 90
[虚幻私塾】
这个作者很懒,什么都没留下…
展开
-
驱动开发:内核监控进程与线程回调
系统中监控进程与线程可以使用微软提供给我们的两个新函数来实现,此类函数的原理是创建一个回调事件,当有进程或线程被创建或者注销时,系统会通过回调机制将该进程相关信息优先返回给我们自己的函数待处理结束后再转向系统层。那么会提示连接的设备没有发挥作用,我们则成功拦截了这次打开,当然如果在打开进程之前扫描其特征并根据特征拒绝进程打开,那么就可以实现一个简单的防恶意程序,进程监控在防恶意程序中也是用的最多的。如上,该函数只有两个参数,第一个参数是回调函数,第二个参数是是否注销,通常在驱动退出时可以传入。原创 2022-10-23 12:38:03 · 600 阅读 · 0 评论 -
前后端分离项目(六):数据分页查询(前端视图)
(后端接口的详细写法在上一篇测试项目(五):数据分页查询(后端接口) - 养肥胖虎 - 博客园 (cnblogs.com)),润!!!(激动)数据库的表:嗯.搞定了最终效果放在开头了。原创 2022-10-23 01:09:01 · 1136 阅读 · 0 评论 -
珂朵莉树学习笔记
最开始出现在Codeforces Round #449 (Div. 1) C题上,这位珂学家在题解中用了一种玄学的数据结构解题,开始命名为 ODT树(Old Driver Tree,老司机树,以出题者的ID命名),后来普遍称为珂朵莉树。用一个结构体来维护每一个区间的信息。ll l, r;//区间左右端点//区间单个元素值}};因为元素值并不是固定的,所以一定要用mutabel让元素值可变起来。原创 2022-10-22 12:37:20 · 460 阅读 · 0 评论 -
Doris开发手记4:倍速性能提升,向量化导入的性能调优实践
正好有Doris社区的小伙伴吐槽向量化的导入性能表现并不是很理想,就借这个机会对之前开发的向量化导入的工作进行了性能调优,取得了不错的优化效果。解决思路也很简单,既然缺页中断是内存没有映射引起的,那这里就尽量复用之前已经使用过的内存,这样,自然也不会引起缺页中断的问题了,对于TLB的缓存访问也有了更高的亲和度。通过替换podarray的内存分配的逻辑之后,效果也很符合预期,通过火焰图进行观察,缺页中断的占比大量的减少,性能上也获得了可观的收益。,记住这个是个缓存),查找对应的虚拟地址到物理地址的映射。原创 2022-10-21 12:38:18 · 668 阅读 · 0 评论 -
Hyperf使用ElasticSearch记录
hyperf/elasticsearch 主要为 elasticsearch-php 进行了客户端对象创建的工厂类封装,elasticsearch-php 默认使用 Guzzle Ring 客户端,在 hyperf/guzzle 中我们实现了协程版本的 Handler,所以可以直接使用 Hyperf\Elasticsearch\ClientBuilderFactory 创建一个新的 Builder。这里的账号密码指的是创建 elasticsearch 的时候的账号密码。可以在这里查看每个方法的数据格式。原创 2022-10-21 01:10:07 · 778 阅读 · 0 评论 -
Java I/O(3):NIO中的Buffer
2、缓冲区核心作用是解耦设备间的速度制约,成为设备间的「缓冲」,而缓存则是用来加快读取的速度,减少重新计算或者重新从数据库获取的次数。比如做饭时,砧板就是缓冲,冰箱就是缓存,因为从菜冰箱取出来到下锅,需要不停地切、拍、剁,每次都要清空了才能做下一道菜,而冰箱是不用定期清空、重置的(除非停电,东西都坏了);4、现在的缓存一般都很大,甚至可以达到TB级别(1TB=1024GB),缓冲是不可能这么大的(当然你也可以把砧板搞成冰箱那么大,反正我还没见过这种-_-!咨询技术、产品、运营和管理相关问题,请关注后留言。原创 2022-10-20 12:37:49 · 87 阅读 · 0 评论 -
百度&飞桨&蜜度文本智能较对大赛经验分享(17/685)
系统/模型的输入为原始序列X=(x1,x2,…,xn)X=(x1,x2,…,xn),输出为纠错后的序列 Y=(y1,y2,…,ym)Y=(y1,y2,…,ym)X可能已经是完全正确的序列,所以X可能与Y相同。系统/模型需要支持多种粒度的序列,包括:字词、短语、句子、短文。原创 2022-10-20 01:06:57 · 797 阅读 · 0 评论 -
开源数字基础设施 项目 -- Speckle
是用于 3D 设计的任何东西的开源数字基础设施。2022年5月份获得550万美元的种子轮融资,由Frontline Ventures和Matrix Partners联合领投,现有投资者Foundamental和数位天使投资人跟投。Speckle 不是一个基于文件系统的系统 - 它是一个用于大型 3D 模型的版本化对象图存储,具有多个持久性层。,采用.NET 标准 2.0,在Nuget上发布了各种 NuGet,以便更轻松地在下一个 .NET 项目中使用斑点。原创 2022-10-19 12:39:41 · 467 阅读 · 0 评论 -
Android自动化测试工具调研
之后编写脚本里,可以使用Web服务的地址,之后脚本代码传输给Web服务,由Web服务再下发手机,有客户端APP程序执行对应的指令操作(这个APP程序实际上就是没有界面的,可以理解为一个后台进程)Appium的桌面APP也是提供了一种测试录制功能,可以将测试的流程记录,并转为对应的脚本代码,如点击了什么控件,输入了什么内容等步骤,可以参考。工具,主要功能就是会将当前的APP页面进行截图,然后分析View的层次结构,并展示View的相关属性信息,如控件ID,margin,text等。原创 2022-10-19 01:08:05 · 493 阅读 · 0 评论 -
测试杂谈——一条SQL引发的思考(二)
test San’Zhang 中的单引号没有转义成功,导致在完整的SQL语句中,后半部分被截断,最终整个SQL报错。好了,以上就是今天的内容了。分析这个问题并不复杂,从中也有些感触,基本功还是需要扎实,一起努力吧。最好的处理方式,就是在代码层面上,将英文的单引号做转义处理,这样就可以避免掉这种报错了。今天这篇,算是个问题记录吧,问题并不复杂,但对于测试同学而言,确实是个需要关注的点。得到的结果,还真有点震惊到我了,只能说“同志还需努力呀!这个只是SQL层面的问题,但根因是啥,还得研发同学解决。原创 2022-10-18 12:39:24 · 489 阅读 · 1 评论 -
Linux 下配置 hosts 并设置免密登录
输入 yes,然后回车,接着输入 master 节点的 root 密码,然后会得到如下日志。输入 yes,然后回车,接着输入 slave 节点的 root 密码,然后会得到如下日志。首先,配置 hosts,在 master 节点上,执行如下命令设置 hostname。需要准备两个节点,一个是 master 节点,另一个是 slave 节点。输入 yes,然后回车,接着输入 root 密码,然后会得到如下日志。输入 yes,然后回车,接着输入 root 密码,然后会得到如下日志。然后在 slave 上执行。原创 2022-10-18 01:07:03 · 792 阅读 · 0 评论 -
『现学现忘』Git后悔药 — 34、git commit --amend 命令
即:有时你提交过代码之后,发现一个地方改错了,你下次提交时不想保留上一次的记录,或者你上一次的。不推荐这样操作,多次提交可以使你选择撤销的余地比较多,简化提交次数是比较好的想法,但更推荐使用。分支只有你自己使用(这一点极其重要),由于开发周期较长,你不想每一次提交都产生一个新的。前提:你把遗漏提交的文件,或者修改的文件先提交到暂存区。有的时候,我们刚刚进行一次提交,突然发现该提交的描述(这个命令给人的感觉,是用新提交的数据,追加到了前一个。的情况下,将新修改的代码追加到前一次的。原创 2022-10-17 12:38:14 · 12338 阅读 · 0 评论 -
k8s 中的 service 如何找到绑定的 Pod 以及如何实现 Pod 负载均衡
Service 资源主要用于为 Pod 对象提供一个固定、统一的访问接口及负载均衡的能力。service 是一组具有相同 label pod 集合的抽象,集群内外的各个服务可以通过 service 进行互相通信。原创 2022-10-17 01:07:57 · 1451 阅读 · 0 评论 -
一篇文章带你掌握主流办公框架——SpringBoot
SpringBoot是由Pivotal团队提供的全新框架,其设计目的就是用来简化Spring应用的初始搭建以及开发过程SpringBoot是针对Spring的繁琐过程进行优化而产生的框架配置繁琐依赖设置繁琐自动配置起步依赖(简化依赖配置)辅助功能(内置服务器等)YAML,一种数据序列化格式容易阅读容易与脚本语言交互以数据为核心,重数据轻格式.yml(主流).yaml大小写敏感属性层级关系使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不能使用tab)原创 2022-10-16 12:38:41 · 724 阅读 · 0 评论 -
envoy开发调试环境搭建
主要是使用vscode devContainer的方式来搭建开发调试环境, 这里稍微解释下,devContainer开发容器是把工程所需的环境打包成容器镜像,在本机运行vscode后会连接到这个开发容器,特别envoy是个cpp项目,环境配置比较复杂,这种方式这样大大提高了开发环境的搭建。我本来是用最新版的尝试,发现不行(请看文章最后我遇到的错误记录),然后我就一个版本一个版本的试验,在1.20.7版本搞成功了, 下面是基于1.20.7版本的envoy。查看5000端口的服务,确认从envoy发出的请求。原创 2022-10-16 01:09:37 · 1121 阅读 · 0 评论 -
第四章 流程编排
胜兵先胜而后求战,败兵先战而后求胜”,犹如业务的信息化、数智化一样,首先业务做好“胜任”数智化的准备,而后才能双赢。我们不可能指望祈祷流程能够一成不变、固化的,就能满足所有业务诉求,就像一直使用一样的“阵形”妄想常胜。变幻莫测的排兵布阵、兵无常形,才具备更强的战斗力。既然如此,那么我们只能积极拥抱变化、小步快跑,敏捷开发,扯远了。虽然没有强大的技术实力来支撑任意的研发流程组合,但是借鉴容器编排、流水线编排等等根基能力,做一套一定范围内针对DevOps领域流程编排的系统理论上是可行的。原创 2022-10-15 12:38:38 · 386 阅读 · 0 评论 -
撬开多线程的大门——学习多线程必须掌握的基本概念
本文的基本概念只能作为多线程学习的一个开端,后续我将持续产出针对多线程应用的知识。想要将多线程技术更好的运用起来,可谓是,“路漫漫其修远兮”。多线程的技术熟练运用,不光是高级开发人员与中级开发人员之间的一道分水岭,它还是很多实际项目必须采用的一种技术方式。项目不单单只满足于功能而已,对于运行效率的提升,多线程技术的涉猎是不二法则。戒骄戒躁,千万不要急于求成,不要以为多线程是一个很小的话题。多线程其实是一个很大的话题,请各位读者要稳扎稳打,一步一个脚印地把多线程学好,这会终身受益。原创 2022-10-15 01:11:41 · 356 阅读 · 0 评论 -
SpringBoot(三) - Slf4j+logback 日志,异步请求,定时任务
error 日志级别,掌握,实际开发中,此日志级别是核心业务错误,凡是系统中出现了异常或者程序错误,都必须使用error日志,级别最高,确保必须输出,可以有效的记录线上业务的错误;info 日志级别,掌握,实际开发中,此日志级别是核心业务环境日志,不需要记录特别详细,一般都是接口 入和出,方便版本上线查看业务是否正常使用;warn 日志级别,掌握,实际开发中,此日志级别是业务警告日志,警告日志不一定是错误,可能业务异常流程,或者数据错误判断;trace 日志级别,了解,实际开发中,几乎不会使用此级别;原创 2022-10-14 12:39:19 · 1300 阅读 · 0 评论 -
使用 Kubeadm 部署 K8S安装
apiserver-advertise-address=172.16.3.181 #master的ip地址。默认token有效期为24小时,当过期之后,该token就不可用了。如果 kubectl apply -f 后面的地址下不下来。–kubernetes-version=v1.18.19 #指定k8s版本,根据具体版本进行修改。–pod-network-cidr=10.244.0.0/16 #指定pod网络的范围。由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址。原创 2022-10-14 01:08:26 · 279 阅读 · 0 评论 -
虚拟线程 - VirtualThread源码透视
虽然虚拟线程建造器屏蔽了执行器Executor实例的公共访问权限,在目前预留功能版本下只能所有虚拟线程的任务最终都是由全局的执行,可以通过VarHandle/***/});Class原创 2022-10-07 12:38:31 · 351 阅读 · 0 评论 -
条件期望:Conditional Expectation 举例详解之入门之入门之草履虫都说听懂了
\left{ G_{1}, G_{2}, \ldots \right} 的最小 σ\sigma-algebra,即,任意 G\mathcal{G} 的元素都可以写作 ⋃n∈IGn\bigcup\limits_{n \in I} G_{n} 的形式,其中 I⊂N+I \subset \mathbb{N}^{+} (II 为 N+\mathbb{N}^{+} 的某些子集)。现在考虑条件期望: E[X | G]\mathbb{E}\left[ X ~ | ~ \mathcal{G} \right]。原创 2022-10-07 01:07:57 · 1236 阅读 · 0 评论 -
初始多线程
函数原型头 文 件:#include功能介绍:用来创建一个线程参数介绍第一个参数为指向线程标识符的指针第二个参数用来设置线程属性,一般置为 NULL,表示使用默认属性第三个参数是线程执行的函数,返回值为 void *最后一个参数是线程执行函数的参数返 回 值当创建线程成功时,函数返回0若不为 0 则说明创建线程失败,常见的错误返回代码为 EAGAIN 和 EINVAL:前者表示系统限制创建新的线程,例如线程数目过多了后者表示第二个参数代表的线程属性值非法函数原型头 文 件。原创 2022-10-06 12:38:11 · 551 阅读 · 0 评论 -
行走的数字
有一定数学基础的同学们都知道,如果两个正整数相除之后得到的结果,要么能除尽,要么就是一个循环小数。假如结果是循环小数,那么小数的每一位取值是0-9,且存在循环节点。如果我们用小数的每一位进行画图,每位小数用固定的线段表示,而每位小数的大小则用角度(1代表36度,2代表72度,以此类推)表示,这样的话我们就可以看到画图板上有一条线段在行走一样。原创 2022-10-06 01:11:26 · 76 阅读 · 0 评论 -
Netty 学习(八):新连接接入源码说明
这个方法类似在 NIO 编程中,注册 OP_READ 事件,表示 Channel 对读事件感兴趣。继续 Debug,进入 NioSocketChannel 的构造方法中,调用的是。启动一个 Netty 服务端和 Netty 客户端,在。这个方法主要做的事情就是:创建,设置并绑定。可以看到此时调用的是 Java 底层的。, Netty 将其封装成自定义的。方法,创建了一条 JDK 层面的。方法,通过Debug,可以看到。这一行打断点,可以得到这里的。,通过 Debug 可以来到。新连接的接入分为3个过程。原创 2022-10-05 12:39:17 · 437 阅读 · 0 评论 -
【疫情动态条形图】用Python开发全球疫情排名动态条形图bar_chart_race
大洲中文、大洲英文、国家中文、国家英文、省份中文、省份英文、省份邮编、省份确诊、省份疑似、省份治愈、省份死亡、城市中文、城市英文、城市邮编、城市确诊、城市疑似、城市治愈、城市死亡、更新时间。注:由于网络原因,很多小伙伴打不开github,我已经下载好csv数据,公众号「老男孩的平凡之路」后台回复「疫情数据」即可获取最新csv数据!下面,开始行列转换(很关键!这是bar_chart_race库要求的输入格式)csv下载好之后,开始清洗数据。下面就可以开始开发可视化代码了。原创 2022-10-05 01:08:11 · 672 阅读 · 1 评论 -
从硬件缓存入门到并发编程三要素详解 Java中 volatile 、final 等关键字解析、单例模式案例
硬盘接到写入数据的指令之后,并不会马上将数据写入到盘片上,而是先暂时存储在缓存里,然后发送一个“数据已写入”的信号给系统,这时系统就会认为数据已经写入,并继续执行下面的工作,而硬盘则在空闲(不进行读取或写入的时候)时再将缓存中的数据写入到盘片上。 相当于提前加载,猜测你可能会用到硬盘相邻存储地址的数据,它会提前进行加载到缓存中,后面你需要时,CPU就不需要去硬盘读取数据,直接读取缓存中的数据传输到内存中就OK了,由于读取缓存的速度远远高于读取硬盘时磁头读写的速度,所以能够明显的改善性能。原创 2022-10-04 12:39:17 · 110 阅读 · 0 评论 -
我操作MySQL的惊险一幕
情况:漏了某一个字段 X,需要将 A 表的这个字段列值更新到 B 表条件:A 中的 id 字段的值等于 B表中的 id 字段的值 且 A 中的 name 字段的值等于 B 中 name 字段的值(条件为什么这样写?)。条件这样写主要是因为表和表之间的关联关系可能有多个字段,此处只选二个字段,多个依此类推。一张表的数据插入到另一张表,可以这样写:INSERT INTO 目标表(字段1, 字段2, ...) SELECT 字段1, 字段2, ... FROM 来源表 WHERE 条件;原创 2022-10-04 01:07:26 · 5143 阅读 · 7 评论 -
[CG从零开始] 4. pyopengl 绘制一个正方形
利用 glfw 来管理窗口,glfw 做了两件事情,一件事是管理窗口,第二件是管理 OpenGL context,注意要正确设置;正确创建、编译、链接 shader;正确创建和 bind VAO、VBO、EBO;在主函数中创建相应的对象,在循环中渲染;原创 2022-10-03 12:37:34 · 534 阅读 · 0 评论 -
slf4j、log4j2及logback使用
之前看过关于slf4j、log4j2及logback的介绍,slf4j是门面,log4j2及logback是具体实现,仅使用slf4j门面是无法输出日志的。原因为代码只有slf4j门面,没有相关实现。原因为log4j2需要配置文件。运行代码,之前的错误消失,取而代之的是。删除第2节中maven依赖引入的。运行程序,不出意外,程序报错。原创 2022-10-03 01:07:08 · 1080 阅读 · 0 评论 -
Go微服务实战 - 用户服务开发(gRPC+Protocol Buffer)
用户服务基本是每个互联网产品里必备的一个服务了,因为没有用户基本是什么也干不了。本文主要介绍下如何开发一个用户微服务,以及他的详细开发流程。以上命令都是一步一步执行的,为了方便期间,这里也提供了一件部署脚本,执行如下。到此,开发、测试、部署已经操作完了,后面会继续完善链路追踪和监控相关的部分。这里详细的记录了开发的步骤,方便参看本项目的同学知道其实现过程。后面就可以在这里补充具体的业务逻辑处理了。6、在生成的server中编写业务逻辑。5、注册服务到gRPC Server。1、生成proto模板文件。原创 2022-10-02 12:37:17 · 805 阅读 · 1 评论 -
python-数据描述与分析(1)
在进行数据分析之前,我们需要做的事情是对数据有初步的了解,这个了解就涉及对行业的了解和对数据本身的敏感程度,通俗来说就是对数据的分布有大概的理解,此时我们需要工具进行数据的描述,观测数据的形状等;另外,综上,通过对csv格式的文件进行读取,我们可以指定读入的格式(sep=“,”),也可以指定他的header为空None,最后添加column,而之所以可以后来添加的原因是读入的csv已经是DataFrame格式对象。对比之前的默认标识,我们可以看出它由1,2,3,4变成了a,b,c,d。原创 2022-10-02 01:07:01 · 549 阅读 · 0 评论 -
Redis高并发分布式锁详解
1.分布式锁并发优化,是一个十分复杂的过程,需要考虑数据的拆分,如何选择拆分的数据,如何校验,如何切换等等。这些都是需要我们考量和积累经验的。原创 2022-10-01 01:16:06 · 847 阅读 · 0 评论 -
2022 CLion 中的Cygwin 配置(最全,最良心版)
原因问题没装Cmake没装gdbdebug功能无法使用找不到environment没有装在c盘,添加环境变量,无效就重装。原创 2022-09-20 12:37:32 · 2251 阅读 · 1 评论 -
学会Linux,看完这篇就行了!
林纳斯·托瓦兹(Linux Torvalds),著名的电脑程序员、黑客、Linux内核的发明人及该计划的合作者。“有些人生来就是具有统率百万人的领袖风范;另一些人则是写出颠覆世界的软件而生。唯一一个能同时做到这两者的人,就是托瓦兹。”美国《时代》周刊对“Linux之父”林纳斯·托瓦兹(Linux Torvalds)给出了极高的评价。原创 2022-09-20 01:11:28 · 333 阅读 · 0 评论 -
微服务低代码Serverless平台(星链)的应用实践
星链提供了独特的业务组件库功能,除了提供系统公共组件,星链还支持自定义团队组件。公共组件由系统维护,每个用户都可以使用。系统将不断完善公共组件库建设,在私有化部署中,客户可以自定义系统组件。团队组件由团队自己维护,对其他团队不可见。用户在VMS内自定义的连接器组件(如DB/HTTP连接器)可以导出为团队组件。用户可以在星链控制台中维护团队组件,包括组件分组等。在BPMN编排中,用户可以浏览、查询团队或公共组件,并直接拖拽到编排面板中。如图8所示。原创 2022-09-19 12:37:59 · 329 阅读 · 0 评论 -
HK32F030MF4P6的Linux GCC工具链开发环境
航顺的 HK32F030MF4P6, TSSOP20封装, Arm Cortex M0 内核, 内建32MHz时钟, 16K Flash, 2K RAM(实际上可用的有4K).原创 2022-09-19 01:09:17 · 579 阅读 · 0 评论 -
WinUI 3 踩坑记:第一个窗口
自定义标题栏是每个应用都应该做的事情,毕竟窗口顶部突然出现一个孤零零白条多少有点煞风景。WinUI 3 提供了两种方法自定义标题栏,有关这两种方法更详细的内容,请看文档。WinUI 3 在窗口操作上比 WPF/UWP 麻烦了不少,许多常用的操作都没有封装,比如最大最小化、隐藏窗口等。又因为在窗口上设计思路的不同,使得很多功能需要通过窗口句柄这个本应该被隐藏掉的东西去实现,这就是为什么我要在前言中写下了解 Win32 窗口相关知识。人家微软也有理由说的,我开发的是什么框架,是最新一代的框架;原创 2022-09-18 01:12:04 · 1814 阅读 · 0 评论 -
Pytest测试框架一键动态切换环境思路及方案
在上一篇文章《Pytest fixture及conftest详解》中,我们介绍了fixture的一些关键特性、用法、作用域、参数等,本篇文章将结合fixture及conftest实现一键动态切换自动化测试环境。在开始前,我们可以先思考几个问题:动态切换测试环境的目的是什么(能够解决什么问题)?该如何实现(实现方案)?具体步骤是什么(实现过程)?在conftest.py中定义一个hook函数,实现自定义命令行工具,名为pytest_addoption(固定写法),用来在命令行中传入不同的环境参数;"""原创 2022-09-17 12:43:39 · 169 阅读 · 0 评论 -
泛型的约束不止一面
泛型中的约束,其实就是针对类型参数的约束,限制类型参数的选择只能在某个特定范围内。其中的体现包括:限制类型参数必须是一个结构、限制类型参数必须是某个具体类型、限制类型参数必须派生自某个基类等等。在默认情况下,定义的泛型没有任何约束,这意味着在调用泛型时,可以使用任何数据类型作为类型参数。如果定义了约束,则在应用端调用泛型时,不传入符合约束条件的类型参数,编译器将提示错误。通过这种约束实现了编译前类型检查,确保了泛型在运行时对类型参数使用的安全性。原创 2022-09-17 01:07:55 · 892 阅读 · 0 评论 -
ConcurrentDictionary<T,V> 的这两个操作不是原子性的
为解决ConcurrentDictionary GetOrAdd(key, valueFactory) 工厂函数在并发场景下被多次执行的问题。① valueFactory工厂函数产生Lazy容器② 将Lazy容器的值初始化姿势设定为(线程安全且执行一次)。两姿势缺一不可。原创 2022-09-16 12:40:23 · 334 阅读 · 0 评论