- 博客(145)
- 收藏
- 关注
原创 dpdk课程学习之练习笔记八(dpvs的了解)
1:知道了lvs能实现的功能,挺强大。2:熟悉练习一下dpdk的环境搭建,设置网卡支持多队列,设置巨页,dpdk接管网卡。3:dpvs是基于dpdk上的一个产物,了解一下,未涉及相关业务,并未深入。
2024-09-18 23:18:16 1170
原创 bpf的了解以及bpftrace的简单练习
使用ebpf可以实现的功能打开新世界,可以不改变源码的情况下,实现内存,网络,对应接口等各种期望内容的监控。可以使用bpf直接进行开发,使用clang编译成ebpf字节序后加载进行使用。使用bcc进行开发实现功能,多是python/lua,对应的demo可以参考githuab.使用bpftool工具集可以进行加载,查看,卸载等一系列的功能,没有过多研究。
2024-09-17 22:22:06 931
原创 存储课程学习笔记8_spdk的安装以及简单demo测试
1:对spdk进行安装以及demo测试。2:对宏观上spdk控制磁盘的架构和方案进行认识。3:基于已经能通过spdk对磁盘进行访问的功能,后续按需按业务就得思考了(如何有效管理磁盘?
2024-09-11 14:12:56 1211
原创 存储课程学习笔记7_fuse库的简单使用(fuse,opencv的demo)
1:fuse的开发,实际上和前面借助内核插入文件系统大框架感觉差不多,都是实现文件系统基础指令对应的函数。2:借助opencv实现给图片加水印,opencv的编译以及简单测试。3:简单了解fuse库下的example下demo,以及简单验证demo。4:fuse的扩展功能可以根据业务自行扩展,这里只是入门了解。
2024-09-10 22:46:16 465
原创 存储课程学习笔记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 668
原创 存储课程学习笔记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 1802
原创 存储课程学习笔记4_设计数据结构管理nvme磁盘(基于已经通过struct nvme_user_io和ioctl实现了对nvme设备的读写)
已经能对nvme设备进行基本的读和写了,如何对nvme磁盘进行管理。根据不同的业务设计,自己定义数据结构对磁盘进行管理,这里定义结构进行管理测试。可以看看ioctl中参数NVME_IOCTL_SUBMIT_IO 跟踪代码对细节进行了解。思考:基于当前磁盘的读写,如何实现一个文件系统对该磁盘进行控制。
2024-09-10 00:29:44 869
原创 存储课程学习笔记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 759
原创 存储课程学习笔记2_借助内核插入一个文件系统,用文件夹下测试文件系统(mount文件系统到目录下是入口)
0:mount是入口,一个裸盘先赋予文件系统,然后mount后才可以用。1:内核提供了插入文件系统的方法,register_filesystem函数和对应的struct file_system_type 结构体。2:插入内核模块的demo,基于插入内核模块,实现插入一个新的文件系统。
2024-09-09 20:49:35 734
原创 日常知识点之阿里云服务器提示禁用了密码登录方式
使用阿里云服务器进行一些实例测试时,发现业务启动后,服务器连接卡死,重连显示拒绝密码登录。尝试好几次,因为在做的业务,怀疑可能时磁盘或者内存导致,但是,这玩意为啥会导致拒绝密码登录也是迷糊,就探索探索。查看虚拟机监控,发现是云盘读写bps占满,结合百度说内存满了设置交换分区就好了,试了试果然解决。如下,出现问题时查看监控:我的虚拟机安装的是ubuntu,直接百度设置交换分区,一次解决。因为是回顾昨天的问题,也是直接问ai,给出交换分区设置方式:设置后,当前状态如下,问题解决启动正常。后来发现重启虚
2024-08-08 10:40:52 457
原创 日常知识点之遇到问题结构体按位构造协议时和期望不一致,研究记录一下
疑问:本想按照定义的结构给结构体赋值,发现赋值后期望结果和预期不一致。总结:其实核心还是按位处理,按位处理时是从低位往高位写。
2024-08-08 10:09:07 397
原创 qt初入门10:常用的单例,代码做个记录备份
简单想想:实现单例时,需要考虑对象唯一,不允许用户实例化,考虑初始化时线程安全,该单例对象的释放问题。这个代码感觉挺好的,做个备份,至于更优(调用更简单),把单例封装成模板,借助c++宏等方案,参考。4:考虑该对象的释放,栈对象不用考虑,堆对象的释放可以借助智能指针/单例类中类析构时释放。2:禁用构造函数,提供静态成员函数初始化/获取该唯一对象。最近用qt比较多,看到一个好的demo,一直用,做个备份。3:考虑多线程的安全,初始化该对象前考虑加锁。1:借助static静态成员变量,保证唯一。
2024-07-23 17:43:32 139
原创 qt初入门9:qt记录日志的方式,日志库了解练习(qInstallMessageHandler,qslog, log4qt)
初次接触qt相关的日志库,有需要用一个qt的日志库,就瞎折腾。最终发现,好像最基本的是最合理的,直接用log4qt在cpp中LOG4QT_DECLARE_STATIC_LOGGER静态定义最方便吧,结合配置文件也能满足需求。最终感觉,直接用log4qt应该完全能满足需求,日志文件中也能定制自己需要的布局,也支持多线程等。啥也不是,先操作后再思考吧。
2024-07-22 18:46:00 1714
原创 qt初入门8:下拉框,输入框模糊查询,提示简单了解 (借助QCompleter)
实现一个简单的模糊查询的逻辑,输入框能提示相关项。主要借助qt的QCompleter 类(),结合一些控件,比如QComboBox和QLineEdit,实现模糊查询的功能。
2024-07-19 15:00:00 441
原创 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 1607
原创 qt初入门5:字体设置和元对象系统的练习
空闲时间,参考课本demo,做一下练习。字体的颜色主要用QPalette类,调色板的作用,控制着窗口部件的颜色和外观,包括背景色、前景色、文本颜色、边框颜色等。字体的显示样式主要用Font类,用于管理字体。元对象的使用(QObject派生类都具有与之相关联的元对象):主要练习通过元对象系统,获取类名,属性等,这里可以设置一些类信息和属性信息,然后使用。只贴出必要代码,其他的都是信号,槽,以及控件的基础使用。
2024-01-20 16:34:51 679
原创 qt初入门3:文件,目录,临时文件,监视相关demo
参考qt的书籍demo,做练习QCoreApplication类 主要处理获取app所在目录,路径,app名称,lib库路径等。QFile类 主要实现文件拷贝,校验存在,删除,重命名,移动到回收站等。QFileInfo类 获取文件必要信息,比如绝对路径,文件名,路径,大小,创建时间,最后修改时间等属性QDir类 获取操作系统的一些目录路径 比如根目录,临时目录,home目录,分区,当前目录(可以设置)等。目录的增删改查(递归删除目录) 路径,名称,遍历目录,遍历文件等。
2024-01-11 19:48:04 641
原创 qt初入门2:qt选择一个文件或者目录,获取当前目录,操作文件目录等整理
最近用qt操作文件或者目录的动作比较多,简单整理一下常用的接口,方便回顾。总的来说,其实就是用文件选择对话框QFileDialog类,以及操作文件信息的QFileInfo类,以及相关QCoreApplication中静态成员函数获取一些信息,qDir类。
2024-01-09 18:07:35 3345
原创 读书之深入理解ffmpeg_简单笔记2(初步)
再回看第一遍通读后的笔记,感觉还有很多的细节需要一一攻克,。mp4的封装格式,解析方式。flv的封装格式,解析方式。ts的封装格式,解析方式。
2024-01-05 11:22:14 1342
原创 读书之深入理解ffmpeg_简单笔记1(初步)
AVFormat(封装,解封装),AVCodec(编码,解码模块),AVFilter(滤镜模块),AVDevices(设备模块),AVUtils(通用工具模块)swscale(图像转换模块)swresample(音频转换模块)ffmpeg编译后生成三个工具,ffmpeg(编解码工具),ffplay(播放器),ffprobe(多媒体分析器)安装:可以去官网直接下载可执行程序,也可以去源码安装(整理过,这里略过)
2024-01-05 11:19:01 1279
原创 读书之unix环境高级编程_简单笔记2(初步)
手头有比较多的技术书籍,弃之可惜,放之惭愧,借助空闲时间,先草读,再demo整理。unix环境高级编程 草读简单整理,为下一步整理细节技术点做准备。(仅个人笔记)
2024-01-05 10:54:36 985
原创 读书之unix环境高级编程_简单笔记1(初步)
手头有比较多的技术书籍,弃之可惜,放之惭愧,借助空闲时间,先草读,再demo整理。unix环境高级编程 草读简单整理,为下一步整理细节技术点做准备(仅个人笔记)。基本的文件操作,线程,进程,系统,进程间通信,终端控制等。
2024-01-05 10:52:40 868
原创 读书之unix网络编程卷1_简单笔记(初步)
手头有比较多的技术书籍,弃之可惜,放之惭愧,借助空闲时间,先草读,再demo整理。unix网络编程卷1 草读简单笔记,为下一步整理细节技术点做准备。
2024-01-05 10:46:25 481
原创 借助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 2849 1
原创 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 482
原创 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 839
原创 Trinitycore学习之在Linux环境上搭建服务器并测试运行
上面已经编译出处理地图数据的可执行文件 mapextractor, vmap4extractor,vmap4assembler, mmaps_generator,执行后生成其他一些目录或者文件,是服务器需要的地图信息。同时,df -h查看内存情况,参考https://zhuanlan.zhihu.com/p/359959580 可以实现磁盘内存扩展。注意:这里用的虚拟机,在虚拟机上生成地图信息,地图信息占用内存比较大,我暂时设置磁盘50G进行测试,后面研究细节。
2023-09-12 22:56:46 802
原创 qt初入门1:qt读文件的几种方式简单整理
这些demo测试的初衷是,初次接触qt,要处理一批大文件后,进行界面的显示,但是发现,读取大文件时,有崩溃,耗时的问题。排查耗时崩溃问题的原因,有怀疑过是读文件的耗时,所以做了简单demo测试,最后发现是字符处理内存增加,qDebug日志记录,通过ui进行界面显示过大内容导致的耗时,甚至崩溃。在整理回头整理demo的过程,以及最近实际过程中遇到的小问题,发现可以整理的点。
2023-08-18 09:30:25 5007
原创 qt初入门0:结构体中QString用memset导致崩溃分析及QLatin1String简单查看源码
结构体中QString成员memset导致崩溃
2023-08-17 18:20:56 1940
原创 音视频使用qt测试ffmpeg接口时无法运行
对qt相关环境并不熟悉,在进行测试的时候,遇到构建成功,运行没反应的问题,纠结许久有阻塞,所以做了该整理。1:qt构建时,要注意选择的构建方式,以及依赖动态库要和构建方式的32/64版本对应,pro文件中要配置对应依赖位置。2:运行时报错”“,或者运行时没有反应,多半是dll依赖没有对,需要拷贝对应依赖dll到构建目录下。====》这里同时要注意debug版本和release版本构建时,点击直接运行时的报错和debug运行时的报错不一样。(都是确少对应dll文件)
2023-05-23 12:56:22 923
原创 音视频windows安装ffmpeg6.0并使用vs调试源码笔记
建立在上一步,vs已经能够正常调试qt项目,可以实现:1:qt可以使用mvsc (使用cdb)进行调试。2:vs已经可以加载qt项目,借助vs进行调试。:编译ffmpeg库,编译出对应的相关库,使用qt,vs进行调试demo,为研究源码做准备。本文编译ffmpeg6.0,使调试源码环境能正常进行。技巧:which.exe cl.exe 可以查看当前生效的执行文件。
2023-05-20 01:07:58 1364 6
原创 音视频源码调试前准备vs2019+qt5.15.2搭建可调试环境
安装vs2019+qt,并且在windows环境上安装ffmpeg,尝试使用qt+cdb进行调试,尝试使用vs2019加载qt的程序。
2023-05-20 01:02:18 936 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人