自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(153)
  • 收藏
  • 关注

原创 日常知识点之刷题一

/输入每个启动的时间和编号int n, m;return;int t, p;i < m;i++)//已经存储了发动机的个数 和要启动的发动机个数 已经存储了在时刻启动发动机的信息//打印最后启动的发动机个数 和发动机编号//使用数组标识每个发动机的最终状态//为了后面计算方便//每次启动 实际上是x号发动机在y号启动的 依次遍历给取最小值i++)//遍历启动的发动机时刻//在这个时刻启动了这个发动机j < n;j++)

2025-02-24 23:09:13 895

原创 日常知识点之遗留问题梳理(有个面试题关于函数调用约定)

寄存器的概念以及线程切换时对寄存器是如何处理的。如何通过寄存器管理以及调用代码的?需要简单了解不同寄存器的作用,以及如何配合工作。掌握反汇编查看源码分析问题的手段。函数调用约定就是对函数调用的一个约束和规定,描述了函数参数是怎么传递和由谁清除堆栈的。​ 1:它决定了,函数参数传递的方式(是否采用寄存器传递参数,采用哪个寄存器传递参数,参数压栈的顺序等),​ 2:函数调用结束后栈指针由谁恢复(被调用的函数恢复还是调用者恢复),函数修饰名的产生方法。__stdcall。

2025-02-20 19:01:33 638

原创 日常知识点之遗留问题梳理(有个面试题关于virtual的位置,虚函数表)

遇到一个面试题,继承的时候,virtual的写与不写问题,以及virtual放在基类成员函数前,放在子类成员函数前的差异。。

2025-02-15 15:39:52 390

原创 日常知识点之遗留问题梳理(被问到用uml画设计模式)

好多年不接触uml了,有一天面试,让用uml画出设计模式,已经对uml的概念很模糊,隐约记得就是用例图,类图之类的,后面确定后,就是类图,用例图,时序图,都属于uml,按需画图。简单潦草做思路汇总,个人汇总。

2025-02-15 01:26:24 981

原创 日常知识点之遗留问题梳理(定时器/时间轮定时器)

定时器的核心知识点,对我来说就是获取当前时间和设置回调函数。简单练习:​ c语言通过gettimeofday 获取当前时间并进行处理​ 回调函数的定义(函数参数有必要适当存储) typedef void(Timerfunc)(void p);1.2 :运行结果2:借助已有的stl容器实现是最方便的不知道哪里参考的一个代码,借助了stl中的一个优先级队列,就简单整理一下吧。回顾好久没写的细节:0:优先级队列 priority_queue 支持大堆小堆 (自己定义比较函数)1:锁和条件变量

2025-02-14 14:31:17 531

原创 日常知识点之遗留问题梳理(timerfd+epoll实现定时器的功能)

定时器一直是自己心心念念的概念,以前只是草草使用,这次对部分遗留作简单整理。总结:思考最简单定时器的逻辑,timerfd相关接口逻辑,epoll进行关联事件逻辑。

2025-02-14 00:32:18 918

原创 日常知识点之面试后反思裸写string类

/函数前面用const 表示的是函数返回值const//函数后面用用const修饰 可以使常量调用,表示该函数内部不可以修改成员变量//c字符串对string进行初始化 c字符串为NULL 不为NULL//以及c字符串本身也是一以\0终止if (str)//str为NULL 会导致抛异常elselength = 0;//字符串之间 拷贝构造函数 使用传递引用的方式提升性能//在自己类的成员函数中 参数可以直接访问私有成员//移动构造函数 注意&& 浅拷贝。

2025-02-12 21:10:48 521 1

原创 日常知识点之面试后反思遗留问题汇总

==》线程池中专门的线程1负责消费线程,(除了执行线程外 线程1管理消费task的调用函数和task进行绑定(确定调用函数) 线程2 负责执行task进行消费 线程3 负责线程的释放)=======》通过回调函数可以设置自定义执行业务,对结果进行返回 数据的发送 同样是调用上面的网络入口id和session的关联进行回复。===》业务不复杂的话,epoll作为入口,接收后管理fd,把fd和接收数据放入队列,下一个线程取队列进行处理,处理完找fd回复。(最大线程数,当前线程数))

2025-02-07 10:34:47 858

原创 dpdk课程学习之练习笔记八(dpvs的了解)

1:知道了lvs能实现的功能,挺强大。2:熟悉练习一下dpdk的环境搭建,设置网卡支持多队列,设置巨页,dpdk接管网卡。3:dpvs是基于dpdk上的一个产物,了解一下,未涉及相关业务,并未深入。

2024-09-18 23:18:16 1349

原创 bpf的了解以及bpftrace的简单练习

使用ebpf可以实现的功能打开新世界,可以不改变源码的情况下,实现内存,网络,对应接口等各种期望内容的监控。可以使用bpf直接进行开发,使用clang编译成ebpf字节序后加载进行使用。使用bcc进行开发实现功能,多是python/lua,对应的demo可以参考githuab.使用bpftool工具集可以进行加载,查看,卸载等一系列的功能,没有过多研究。

2024-09-17 22:22:06 1155

原创 存储课程学习笔记8_spdk的安装以及简单demo测试

1:对spdk进行安装以及demo测试。2:对宏观上spdk控制磁盘的架构和方案进行认识。3:基于已经能通过spdk对磁盘进行访问的功能,后续按需按业务就得思考了(如何有效管理磁盘?

2024-09-11 14:12:56 1491

原创 存储课程学习笔记7_fuse库的简单使用(fuse,opencv的demo)

1:fuse的开发,实际上和前面借助内核插入文件系统大框架感觉差不多,都是实现文件系统基础指令对应的函数。2:借助opencv实现给图片加水印,opencv的编译以及简单测试。3:简单了解fuse库下的example下demo,以及简单验证demo。4:fuse的扩展功能可以根据业务自行扩展,这里只是入门了解。

2024-09-10 22:46:16 617

原创 存储课程学习笔记6_io接口练习(readv,writev, 借助本地socket实现进程间(sendmsg,recvmsg)通过共享内存数据交互)

1:主要练习sendv和readv函数接口, 构造struct iovec结构体发送或者接收不连续内存的处理。2:练习AF_UNIX 进行原生socket的通信。3:基于socket通信的基础上,创建共享内存,多个进程之间实现交互(shm_open, mmap)4:多个进程之间使用共享资源(这里共享内存),需要考虑互斥。

2024-09-10 17:22:12 742

原创 存储课程学习笔记5_iouring的练习(io_uring,rust_echo_bench,fio)

1:实际上主要用liburing库对io_uring的使用进行测试。2:使用新的开源库,实际上从库中对应的example中开始进行逻辑分析是最合理的。3:io_uring 高效异步IO方案,可以用于磁盘,数据库,大规模io处理,网络等方向(这里以作为tcp server测试)。4:可以用开源库rust_echo_bench 对服务器性能进行测试。5:可以用fio对磁盘读写性能进行测试。

2024-09-10 16:20:32 2120 1

原创 存储课程学习笔记4_设计数据结构管理nvme磁盘(基于已经通过struct nvme_user_io和ioctl实现了对nvme设备的读写)

已经能对nvme设备进行基本的读和写了,如何对nvme磁盘进行管理。根据不同的业务设计,自己定义数据结构对磁盘进行管理,这里定义结构进行管理测试。可以看看ioctl中参数NVME_IOCTL_SUBMIT_IO 跟踪代码对细节进行了解。思考:基于当前磁盘的读写,如何实现一个文件系统对该磁盘进行控制。

2024-09-10 00:29:44 996

原创 存储课程学习笔记3_读写nvme磁盘(清除脏数据,struct nvme_user_io和ioctl进行读写,struct block_device内核提供接口读写)

1:初始化nvme磁盘,清空脏数据 dd指令2:struct nvme_user_io结构体+ioctl实现直接控制nvme磁盘。了解block块3:借助内核接口插入内核模块实现对nvme磁盘的访问。(struct block_device对象以及struct bio实现提交请求)4:已经实现基本的对nvme磁盘的基本读和写访问,已经能访问磁盘了,基于当前已有功能,思考如何有效管理整个磁盘,如何实现文件系统的功能。

2024-09-09 22:43:27 1188

原创 存储课程学习笔记2_借助内核插入一个文件系统,用文件夹下测试文件系统(mount文件系统到目录下是入口)

0:mount是入口,一个裸盘先赋予文件系统,然后mount后才可以用。1:内核提供了插入文件系统的方法,register_filesystem函数和对应的struct file_system_type 结构体。2:插入内核模块的demo,基于插入内核模块,实现插入一个新的文件系统。

2024-09-09 20:49:35 823

原创 存储课程学习笔记1_访问scsi磁盘读写测试(struct sg_io_hdr,ioctl,mmap)

scsi

2024-09-09 18:29:59 944

原创 日常知识点之阿里云服务器提示禁用了密码登录方式

使用阿里云服务器进行一些实例测试时,发现业务启动后,服务器连接卡死,重连显示拒绝密码登录。尝试好几次,因为在做的业务,怀疑可能时磁盘或者内存导致,但是,这玩意为啥会导致拒绝密码登录也是迷糊,就探索探索。查看虚拟机监控,发现是云盘读写bps占满,结合百度说内存满了设置交换分区就好了,试了试果然解决。如下,出现问题时查看监控:我的虚拟机安装的是ubuntu,直接百度设置交换分区,一次解决。因为是回顾昨天的问题,也是直接问ai,给出交换分区设置方式:设置后,当前状态如下,问题解决启动正常。后来发现重启虚

2024-08-08 10:40:52 1256

原创 日常知识点之遇到问题结构体按位构造协议时和期望不一致,研究记录一下

疑问:本想按照定义的结构给结构体赋值,发现赋值后期望结果和预期不一致。总结:其实核心还是按位处理,按位处理时是从低位往高位写。

2024-08-08 10:09:07 427

原创 qt初入门10:常用的单例,代码做个记录备份

简单想想:实现单例时,需要考虑对象唯一,不允许用户实例化,考虑初始化时线程安全,该单例对象的释放问题。这个代码感觉挺好的,做个备份,至于更优(调用更简单),把单例封装成模板,借助c++宏等方案,参考。4:考虑该对象的释放,栈对象不用考虑,堆对象的释放可以借助智能指针/单例类中类析构时释放。2:禁用构造函数,提供静态成员函数初始化/获取该唯一对象。最近用qt比较多,看到一个好的demo,一直用,做个备份。3:考虑多线程的安全,初始化该对象前考虑加锁。1:借助static静态成员变量,保证唯一。

2024-07-23 17:43:32 178

原创 qt初入门9:qt记录日志的方式,日志库了解练习(qInstallMessageHandler,qslog, log4qt)

初次接触qt相关的日志库,有需要用一个qt的日志库,就瞎折腾。最终发现,好像最基本的是最合理的,直接用log4qt在cpp中LOG4QT_DECLARE_STATIC_LOGGER静态定义最方便吧,结合配置文件也能满足需求。最终感觉,直接用log4qt应该完全能满足需求,日志文件中也能定制自己需要的布局,也支持多线程等。啥也不是,先操作后再思考吧。

2024-07-22 18:46:00 2701 1

原创 qt初入门8:下拉框,输入框模糊查询,提示简单了解 (借助QCompleter)

实现一个简单的模糊查询的逻辑,输入框能提示相关项。主要借助qt的QCompleter 类(),结合一些控件,比如QComboBox和QLineEdit,实现模糊查询的功能。

2024-07-19 15:00:00 925 2

原创 qt初入门7:进度条,定时器,时间控件练习

参考课本demo,空闲时间练习一下进度条,定时器,日期相关控件和使用。

2024-01-26 10:55:19 586

原创 qt初入门6:QChar和QString相关接口练习

简单了解编码:​ latin1(ISO 8859-1)字符集是对ASCII基本字符集的扩展,都是1字节编码。Unicode编码有多重存储方案,utf-8使用1~4字节编码,最少1字节;utf-16使用2-4字节编码,最少2字节。主要练习Qchar,QString,Qstring和数值的转换,以及资源文件的加载和显示居中处理。QChar主要练习一下unicode编码,和ASCII字符串编码c字符的转换。

2024-01-24 15:46:46 1775

原创 qt初入门5:字体设置和元对象系统的练习

空闲时间,参考课本demo,做一下练习。字体的颜色主要用QPalette类,调色板的作用,控制着窗口部件的颜色和外观,包括背景色、前景色、文本颜色、边框颜色等。字体的显示样式主要用Font类,用于管理字体。元对象的使用(QObject派生类都具有与之相关联的元对象):主要练习通过元对象系统,获取类名,属性等,这里可以设置一些类信息和属性信息,然后使用。只贴出必要代码,其他的都是信号,槽,以及控件的基础使用。

2024-01-20 16:34:51 769

原创 qt初入门4:大小端(小端转成大端code)

判断电脑大小端,并进行小端转换成大端。

2024-01-12 15:55:30 1343

原创 qt初入门3:文件,目录,临时文件,监视相关demo

参考qt的书籍demo,做练习QCoreApplication类 主要处理获取app所在目录,路径,app名称,lib库路径等。QFile类 主要实现文件拷贝,校验存在,删除,重命名,移动到回收站等。QFileInfo类 获取文件必要信息,比如绝对路径,文件名,路径,大小,创建时间,最后修改时间等属性QDir类 获取操作系统的一些目录路径 比如根目录,临时目录,home目录,分区,当前目录(可以设置)等。目录的增删改查(递归删除目录) 路径,名称,遍历目录,遍历文件等。

2024-01-11 19:48:04 708

原创 qt初入门2:qt选择一个文件或者目录,获取当前目录,操作文件目录等整理

最近用qt操作文件或者目录的动作比较多,简单整理一下常用的接口,方便回顾。总的来说,其实就是用文件选择对话框QFileDialog类,以及操作文件信息的QFileInfo类,以及相关QCoreApplication中静态成员函数获取一些信息,qDir类。

2024-01-09 18:07:35 3892

原创 读书之深入理解ffmpeg_简单笔记3(初步)

注册事件,处理事件的方式。

2024-01-05 11:26:01 1273

原创 读书之深入理解ffmpeg_简单笔记2(初步)

再回看第一遍通读后的笔记,感觉还有很多的细节需要一一攻克,。mp4的封装格式,解析方式。flv的封装格式,解析方式。ts的封装格式,解析方式。

2024-01-05 11:22:14 1485

原创 读书之深入理解ffmpeg_简单笔记1(初步)

AVFormat(封装,解封装),AVCodec(编码,解码模块),AVFilter(滤镜模块),AVDevices(设备模块),AVUtils(通用工具模块)swscale(图像转换模块)swresample(音频转换模块)ffmpeg编译后生成三个工具,ffmpeg(编解码工具),ffplay(播放器),ffprobe(多媒体分析器)安装:可以去官网直接下载可执行程序,也可以去源码安装(整理过,这里略过)

2024-01-05 11:19:01 1497

原创 读书之unix环境高级编程_简单笔记2(初步)

手头有比较多的技术书籍,弃之可惜,放之惭愧,借助空闲时间,先草读,再demo整理。unix环境高级编程 草读简单整理,为下一步整理细节技术点做准备。(仅个人笔记)

2024-01-05 10:54:36 1017

原创 读书之unix环境高级编程_简单笔记1(初步)

手头有比较多的技术书籍,弃之可惜,放之惭愧,借助空闲时间,先草读,再demo整理。unix环境高级编程 草读简单整理,为下一步整理细节技术点做准备(仅个人笔记)。基本的文件操作,线程,进程,系统,进程间通信,终端控制等。

2024-01-05 10:52:40 908

原创 读书之unix网络编程卷1_简单笔记(初步)

手头有比较多的技术书籍,弃之可惜,放之惭愧,借助空闲时间,先草读,再demo整理。unix网络编程卷1 草读简单笔记,为下一步整理细节技术点做准备。

2024-01-05 10:46:25 516

原创 借助libcurl实现ftp文件上传,断点续传demo梳理。

公司业务,需要实现一个ftp大文件上传的功能,简单搭建一个ftp服务器,首先研究demo,以及断点上传的功能。1:首先了解文件上传相关协议,ftp,sftp或者基于http,其他自己实现等。2:确定基于ftp实现,搭建简单的ftp服务器并用工具确定服务器正常。3:基于现有的服务器,了解相关ftp开源库,使用代码实现文件上传最基本的功能。4:考虑到大文件的传输,首先考虑断点续传功能,后期用线程池/多线程方案进行适配优化。5:考虑使用场景,适配在windows上进行测试,基于qt。

2024-01-03 19:41:50 3402 1

原创 udp的简单整理

最近思考udp处理的一些细节,根据公开课,反复思考,终于有所理解,做整理备用。

2023-09-17 22:52:56 1316

原创 Trinitycore学习之windows上用cmake生成vs项目并尝试在windows上启动服务

用zip进行安装的方式,使用cmke进行configure时,总是报找不到mysql的lib库和头文件,即使增加了环境变量,或许是我的zip包不对。用msi进行mysql安装后,cmake进行configure一次成功,然后Generate生成对应的vs项目。不过 用ubuntu搭建服务器测试是正常的,这里只是研究一下windows上做编译研究源码,简单整理一下。参考该文章安装相关的工具,主要有boost,openssl,cmake,mysql,vs2022自己电脑已经安装。登录,也可以用相关界面工具。

2023-09-13 21:29:45 528

原创 Trinitycore学习之在vscode查看远端服务器上源码配置

clangd支持语法补全等相关功能,cmake是编译相关,cmake tools会在vscode下面生成相关编译,运行等按钮。也可以点击+ 在输出框输入 ssh 用户名@ip 也可以,实际上还是在这个配置文件中生成必要信息。不借助vscode中cpp相关自动跳转,通过clangd以及相关配置高效跳转。太多的技术栈来源于零声学院,上班之余,又报了个游戏的课外进修,做此整理。推荐:https://xxetb.xet.tech/s/2W52YR。这里可以通过设置ssh密钥的方式达到免密的效果,暂不关注。

2023-09-12 23:02:57 901

原创 Trinitycore学习之在Linux环境上搭建服务器并测试运行

上面已经编译出处理地图数据的可执行文件 mapextractor, vmap4extractor,vmap4assembler, mmaps_generator,执行后生成其他一些目录或者文件,是服务器需要的地图信息。同时,df -h查看内存情况,参考https://zhuanlan.zhihu.com/p/359959580 可以实现磁盘内存扩展。注意:这里用的虚拟机,在虚拟机上生成地图信息,地图信息占用内存比较大,我暂时设置磁盘50G进行测试,后面研究细节。

2023-09-12 22:56:46 917

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除