自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

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

scsi

2024-09-09 18:29:59 642

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

使用阿里云服务器进行一些实例测试时,发现业务启动后,服务器连接卡死,重连显示拒绝密码登录。尝试好几次,因为在做的业务,怀疑可能时磁盘或者内存导致,但是,这玩意为啥会导致拒绝密码登录也是迷糊,就探索探索。查看虚拟机监控,发现是云盘读写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初入门7:进度条,定时器,时间控件练习

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

2024-01-26 10:55:19 525

原创 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初入门4:大小端(小端转成大端code)

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

2024-01-12 15:55:30 1058

原创 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_简单笔记3(初步)

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

2024-01-05 11:26:01 1205

原创 读书之深入理解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

原创 udp的简单整理

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

2023-09-17 22:52:56 868

原创 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

原创 windows上先简单使用libevent,运行demo

使用libevent。

2023-08-20 23:13:46 340

原创 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

原创 音视频ubuntu安装ffmpeg6.0简略笔记

1:安装相关基础依赖。3:安装相关第三方库。

2023-05-20 00:58:04 424

原创 vs2019测试sizeof(string)的长度是28

vs2019测试sizeof(string)长度是28笔记

2022-08-07 11:08:19 929 1

空空如也

空空如也

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

TA关注的人

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