- 博客(120)
- 资源 (3)
- 收藏
- 关注
原创 【Linux 性能采集】定周期采集某进程的CPU、内存、文件描述符信息并存储到文件【2025.05.21】
采集原理是基于top命令提取关注的参数。输出到文件采用tee 命令,即在控制台窗口打印,也输出到文件。例如:./monitor.sh | tee 123.csv。
2025-05-21 14:05:50
190
原创 【Windows】WMI Provider Host占用CPU过高,到底在忙啥?-篇二【2025.05.15】
本文深入分析了Windows系统中WMI(Windows Management Instrumentation)导致CPU占用高的一个BUG,特别是在禁用CD-ROM后wmiprvse.exe进程的CPU占用异常升高。通过使用ProcExp、ProcMonitor、ApiMonitor和WPT等工具,作者详细追踪了函数调用栈、调用频率以及API调用参数值,发现禁用CD-ROM后,GetTickCount函数的频繁调用是导致CPU占用高的主要原因。
2025-05-15 10:50:58
921
原创 【Windows】怎么解决Win 10家庭版WMI Provider Host占用CPU过高的问题?-篇一【2025.05.07】
wmiprvse.exe 的CPU资源占用高的问题,做个深入分析。
2025-05-07 22:33:56
1098
原创 【Linux内存泄漏】自创pamp 内存快照比对定位内存泄漏【2024-11-07】
如下图:SIZE = 1408 RSS = 1216 PSS = 5 ,意味这这个内存是共享内存,且共享的位置很多。这个内存段关联的文件是libc-2.28.so,r-xp表式这个内存段是 读权限、执行权限和私有(Private)。dump memory /home/myb/桌面/memory_dump_0000632000000000.bin 0x0000632000000000 0x000063200178A000。如下图,左侧的5间隔2天后变成右侧的6,是因为有使用这个库的进程退出,导致PSS变大。
2024-11-07 20:39:03
322
1
原创 【TimeSum】个人项目管理,个人目标引导软件,专利产品,整合日历、便签、番茄时钟、数据分析【2024-11-07】
经过近两年的迭代,TimeSum目前已实现预期的全部基本功能,麻雀虽小五脏俱全。软件基于Qt,纯C++开发。软件核心是逆向思维,将传统的个人项目执行,以逆向的方式,先制定目标,而后落地任务实现的方式。使您的个人数据不止记录,而且用起来。视频演示地址:【个人项目管理软件,时间记账,我的每一天时间都去哪了-哔哩哔哩】 https://b23.tv/lLmCiCT。
2024-11-07 14:26:42
403
原创 【valgrind】valgrind: mmap(0x400000, 163840) failed in UME with error 1 (Operation not permitted).【20】
valgrind运行失败的原因,我这边排查到的一种可能是被分析的软件文件无法映射到内存中。推荐排查方法是被分析的文件。
2024-10-16 09:34:14
213
原创 【windows】Windows窗口消息循环原理分析【2024年8月6日】
关于Windows窗口消息的发出到接收,跨线程边界的传输也进行了梳理。抛出个疑问:即为Windows的窗口循环需要自己实现,不能系统直接调对应的窗口过程?
2024-08-06 16:37:26
810
原创 【QtCreator】Gdb进程启动失败。可能是调用的程序“/usr/bin/gdb”不存在或者您没有调用该程序的权限【2024.02.19】
【QtCreator】Gdb进程启动失败。可能是调用的程序“/usr/bin/gdb”不存在或者您没有调用该程序的权限【2024.02.19】
2024-02-19 17:25:22
723
2
原创 【Git】切换分支【2024年2月19日】
git命令行方式切换分支,Linux系统下,遇到过几次切换分支后HEAD和当前分支断开的情况,原因是git checkout 使用错误导致。2.使用git checkout -t 新建一个本地分支跟踪远程分支。1.查看git checkout的帮助信息。3.查看本地分支与远程分支对应情况。
2024-02-19 13:59:52
503
原创 【Linux】gdb基本操作-类比visual studio vs2013【2024年1月16日】
【代码】【2024年1月16日】【Linux】gdb基本操作-类比visual studio vs2013。
2024-01-16 11:21:28
466
原创 【SourceTree】 rejected because your current branch is behind its remote counterpart【2023年12月25日】
git rejected 场景是远程服务器中有更新,而本地没有拉最新的代码就提交。报错内容:!
2023-12-25 09:37:49
640
原创 【开发工具】最新VMWare无法识别USB设备,驱动错误,未知错误【2023.12.15】
VMWare 无法识别USB设备,驱动错误,未知错误。在这里改下连接方式 多试试。
2023-12-15 20:09:35
4400
原创 【Qt高阶】Linux安装了多个版本的Qt 部署Qt程序,出包【2023.10.17】
linux系统下可执行程序运行时会加载一些动态库so,有一些是Qt的库,Qt的库会加载其他更基础的库。最后出包的时候需要把依赖的包整理到一个文件夹,来制作安装包。近期遇到已经将依赖的so文件拷贝至程序目录下,但还是调系统路径下的动态库的问题。对问题排查过程中的技术手段进行整理备忘。
2023-10-17 15:57:59
1005
原创 【Qt高阶】Qt D-Bus 简介【2023.10.16】
D-Bus 是一个进程间通信(IPC)和远程过程调用(RPC)机制,最初是为了 Linux 开发,用来取代现有的竞争的 IPC 解决方案,提供一个统一的协议。它也被设计来允许系统级进程(比如打印机和硬件驱动程序服务)和普通用户进程之间的通信。它使用一个快速的二进制消息传递协议,适合在同一台机器上的通信,因为其低延迟和低开销。其规范当前由 freedesktop.org 项目定义,并向所有方开放。通信通常是通过一个中心的服务器应用程序,称为“总线”(因此得名),但是应用程序之间的直接通信也是可能的。
2023-10-16 17:48:11
617
原创 【Qt高阶】老Qt都不一定清楚的“QObject线程亲和性”【2023.08.13】
本文继续围绕QThread和QTimer那个例子进行讲解。分析Qt槽函数执行在哪个线程,只不过这次拿官方的帮助文档背书。从手册中找解答。
2023-08-13 17:00:45
445
原创 【Qt高级】QThread与QTimer组合使用引出的信号槽执行在哪个线程的思考【2023.08.06】
想法很单纯,就是主线程启动一个子线程,子线程里启动一个定时器,定时执行一些任务,然鹅实际开发中警告不断。😒Qt警告内容有:槽函数执行在哪个线程取决于发出信号的对象和槽函数的对象是在哪个线程构造的。要想保证成员类的槽函数都执行在子线程,成员类的构造就需在子线程,也就是成员类要以指针的方式组合,在合适的时机new对象出来。
2023-08-06 10:17:00
1053
原创 【Qt】Qt存储大整数到`JsonValue`【2023.08.01】
我负责的需求是这样,存储文件绝对路径和文件大小到json字符串。开发过程中,未意识到文件可能大于int的最大值,所以埋下了隐患。今天被测试提了个bug。主要原因是QJsonValue的toInt()返回的是4字节的int类型,拿来存一个大于有符号四字节整数的值会溢出。这种边界值界定不明确导致bug的情况还是比较常见,做个总结分享帮助大家避坑。此外就是csdn上对于这块的教程属实是又少又粗略。1.QJsonValue存储整数是按照double类型存储的,即使是1这么一个很小的数。
2023-08-01 09:33:01
752
1
原创 【Linux】查看指定端口的UDP、TCP是否收到数据【2023.07.24】
场景是终端上报数据给服务端,会有前端进行展示。通过wireshark看到终端给服务端发送数据了,但是UDP无法确定服务端是否正确收到,于是需要在Linux执行一些命令查看是否收到数据。
2023-07-24 16:56:29
2414
原创 【C++】std::vector容器按条件删除中间某项或某几项【2023.07.21】
目标是使用for循环进行遍历std::vector,然后满足条件的删除。下面给出较优雅的一种写法。
2023-07-21 10:05:15
462
原创 【实用工具】批量复制文件到指定文件夹的辅助工具(BeyondCompare+CppCheck对某次更新的文件进行静态检查)【2023.07.07】
开发一个功能提交了多次代码,现在需要比较最终的提交和某次提交的差异并进行静态代码检查。用到了BeyondCompare和CppCheck软件。但是有个问题,BeyondCompare不能把差异项导出,于是乎花了两个小时写了个辅助工具。
2023-07-08 13:13:01
405
原创 【Qt】QJsonArray清空,释放内存【2023.07.03】
C++标准容器的清空是调用的swap函数,Qt的还真不清楚。故写了个Demo进行测试。经测试直接等于号赋空对象即可。
2023-07-03 17:52:32
1708
原创 【windows】QueryPerformanceFrequency/QueryPerformanceCounter【2023.06.07】
这个API是用于高精度计时的,用了好几次,老是忘记输出的单位是秒、毫秒、微妙还是纳秒?特做总结。
2023-06-07 18:22:42
156
原创 【Qt】delegate的自定义实现函数createEditor进不去【2023.05.07】
妈卖批,因为这个函数进不去,emo了一下午。实际上就是因为函数声明和定义的地方漏了个const关键字。
2023-06-01 22:39:53
1027
3
原创 【Qt】QLocalSocket与QLocalServer问题:接收不到数据、只能收到第一条、数据不完整解决方案【2023.05.24】
Qt很强大,但是Qt的帮助文档、API属实是让我们走不少弯路。QLocalSocket一个很简单的东西,我仅想用来实现一个简单的本地进程通信,就遇到了:客户端循环发送数据,服务端只能接收到一条、接收到数据不完整等奇奇怪怪的现象。
2023-05-24 11:15:52
2148
原创 【Qt工程】error: LNK2001: 无法解析的外部符号 “public: virtual struct QMetaObject const *【2023.05.12】
主要是对Qt不熟,Creator中构建项目是编译+链接,重新根据*.h和*.cpp文件进行生成工程是qmake。构建项目、重新构建项目都不会重新qmake工程。
2023-05-12 15:27:22
1808
原创 【Qt】插件Plugin入门之Q_PLUGIN_METADATA、Q_INTERFACE、Q_DECLARE_INTERFACE的功能剖析【2023.05.07】
关于Qt插件的Q_PLUGIN_METADATA、Q_INTERFACE、Q_DECLARE_INTERFACE宏,这张图总结的基本差不多了,逻辑上贯穿起来了。
2023-05-12 10:45:18
399
原创 【Qt】插件Plugin入门之Q_PLUGIN_METADATA()宏【2023.05.07】
分析Q_PLUGIN_METADATA宏的设计意图,站在设计者的意图进行插件的高屋建瓴式学习。与dllexport进行对比学习。
2023-05-07 22:58:10
2762
1
原创 【Windows内核】关于驱动例程的中断等级:PASSIVE、APC、DISPATCH、DEVICE的详细说明【2023.04.27】
结合生活来理解一下中断。我叫杨奶粉,是一名社畜,当我正在干活的时候,小组长让我去打印一份资料,我就放下手头的工作去打印资料(任务被中断)。这时候部门经理又让我去接待下客户,于是我就放下手头的打印,去接待客户(低优先级中断被高优先级中断打断)。接待客户的时候,刘副总和邓副总(同级别)又叫我参加不同的会议(被多个同级中断打断任务)。上面的例子和操作系统中的中断大差不差。死锁:当我在参加刘副总的会议的时候,需要打印个东西,那我就去打印东西,但是一走到打印机前面,就想起来自己正在参加副总的会,怎么能去打印呢?
2023-04-27 10:46:13
1755
2
原创 【小技巧】通过switch而不是逻辑”||“进行条件的筛选【2023.04.24】
分享一个骚操作,通过switch对条件进行筛选,适用于条件判断比较复杂的场景,可以方便我们对某个条件进行注释😃。
2023-04-24 15:33:35
135
原创 【Qt】QString与QChar的源码学习及二者与Unicode的关系【2023.04.20】
关于QString乱码的一些补充。主要就两点,QChar、QString底层存储的字符都是16进制的Unicode编码。QCharTheQChar对应16位的Unicode字符集。QStringThes.)因为QString存储的是QChar,而QChar是16位、2字节的Unicode字符。对于大于65535的Unicode字符,则存储在连续的两个QChar中。
2023-04-20 15:42:14
594
原创 【并发】线程安全与可重入的理解【2023.04.20】
首先要知道这两个概念是不同的。可重入研究的是系统底层的中断函数执行顺序不同导致函数执行结果不同。线程安全研究的是多线程执行顺序对共享资源的并发访问顺序导致的执行结果不同。简言之,结果确定的就是安全的,可重入的。结果不确定的就是不安全、不可重入的。这也是为啥一直强调全局变量、共享的资源访问要格外小心。
2023-04-20 11:23:32
645
Linux下Qt部署程序
2023-10-17
内核驱动安装测试工具KMDM(Kernal-Mode Driver Manager)和DebugView工具最新版
2022-08-19
C++代码实现Windows系统下发送鼠标移动和单击的程序
2022-05-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人