自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++内存优化 1

在C++开发中,内存优化是提升程序性能和稳定性的关键。

2025-03-06 15:41:47 908

原创 Qt信号与槽机制实现原理

Qt 信号和槽的实现依赖元对象系统的反射能力、moc 生成的胶水代码,以及高效的事件分发机制。其核心设计在保证灵活性的同时,通过编译时类型检查(Qt5)和线程安全的异步调用,兼顾了性能与可靠性。理解这一机制有助于编写高效且松耦合的 Qt 应用程序。Qt 的信号和槽机制是其核心特性之一,用于实现对象间的松耦合通信。

2025-03-06 08:46:29 382

原创 C++ 无锁编程

无锁编程(Lock-Free Programming)是一种并发编程范式,其核心目标是避免使用传统互斥锁(如mutex),通过原子操作和内存顺序保证线程安全。它要求至少一个线程能够在有限步内完成操作,从而避免死锁和优先级反转等问题。与基于锁的编程相比,无锁设计通常能提高并发性能,尤其在低竞争场景下。无锁编程通过原子操作和精细的内存控制提升并发性能,但代价是更高的复杂性和调试难度。在需要极致性能的场景下合理选择,并借助工具和现有库降低风险。对于多数应用,基于锁的抽象(如std::mutex。

2025-03-04 17:45:13 454

原创 C++ 单链表

【代码】C++ 单链表。

2025-02-25 19:02:19 91

原创 CMake基础模板

【代码】CMake基础模板。

2025-02-20 14:00:00 74

原创 Python的 shutil 模块

Python 的shutil模块(shutil是 “shell utility” 的缩写)提供了一系列用于高级文件和目录操作的函数,它可以让你完成许多与文件系统相关的任务,以下是shutil。

2025-02-20 10:43:55 441

原创 python文件备份

【代码】python文件备份。

2025-02-20 09:22:47 97

原创 top命令

是Linux系统管理的“瑞士军刀”,适用于实时监控、故障排查和性能分析。掌握其交互操作和参数组合,能快速定位资源瓶颈,提升运维效率。对于更友好的界面,可尝试替代工具。,用于动态查看系统资源使用情况和进程运行状态。它提供了系统概览(如CPU、内存、负载等)和进程列表,支持交互式操作和命令行参数,是排查性能问题的常用工具。仍是大多数Linux系统的默认选择。

2025-02-19 17:52:14 308

原创 traceroute命令

通过灵活使用参数和场景化分析,tracert能有效帮助用户理解网络结构、定位故障节点,是网络运维中的必备工具。若某节点频繁超时(显示请求超时),可结合ping或pathping进一步验证是否为永久性故障。vs Pathping:Pathping结合路径追踪与丢包统计,适合长期质量评估,但耗时较长。用于分析数据包在复杂网络中的实际路径,例如检测是否绕行不合理节点,优化CDN配置。某节点延迟突增(如从20ms升至200ms),可能为网络拥塞或设备性能问题。-d:禁用DNS解析,直接显示IP地址(提升执行速度)

2025-02-19 13:49:15 502

原创 ping命令

(Linux)查看帮助文档。(Windows)或者。ping 路由器IP。

2025-02-19 13:37:37 486

原创 网络无法连接问题排查

通过逐层排除,可高效定位问题根源。若仍无法解决,提供具体错误信息(如。)将有助于进一步诊断。

2025-02-19 13:30:38 1617

原创 QString和std::string 之间转换

在Qt/C++中,QString和之间的转换需要特别注意编码问题,因为它们使用不同的字符编码。

2025-02-18 10:09:34 1305

原创 Qt软件系统的优化

优化 QT 软件系统涉及多个方面,包括性能、内存管理、UI 响应、代码结构等。以下是一些常见的优化策略和技术。

2025-02-17 17:23:20 778

原创 VS2019查看程序内存使用情况

会记录下此时的内存使用情况和对比上次快照的内存增长情况。在程序需要查看内存使用或增长情况的地发设备断点。启动调试,在每次命中断点时,点击。

2025-02-13 17:54:55 413

原创 std::set最大可以存储多少个数据

例如,在典型的实现中,一个红黑树节点可能包含三个指针(父、左、右)、一个颜色标志(可能用一位,但实际可能占用一个字节或者更多,因为对齐的原因),以及元素本身。假设在64位系统中,每个指针是8字节,颜色标志占用1字节,加上元素的大小。比如,假设每个元素的大小是T类型的大小,比如int是4字节,那么存储N个int类型的元素大约需要N*4字节的内存。随着元素的不断插入和删除,可用内存可能变得碎片化,导致无法分配大的连续内存块,尽管红黑树的节点通常是动态分配的,每个节点单独分配,因此不需要连续的存储空间。

2025-02-13 16:20:16 453

原创 tcpdump命令

tcpdump是一个在Unix/Linux系统上常用的网络抓包工具,用于捕获网络数据包并将其显示或保存到文件中。它可以捕获网络流量,支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来筛选信息。tcpdump抓取到的数据包可以保存为pcap文件格式,然后可以使用Wireshark等图形界面工具进行进一步分析和查看。

2025-02-10 18:23:01 356

原创 lsof命令

lsof(list open files)是一个列出当前系统打开文件的工具。在Linux环境下,任何事物都以文件的形式存在,通过文件不仅可以访问常规数据,还可以访问网络连接和硬件。lsof命令能够列出某个进程打开的文件、某个用户打开的文件,甚至是系统上打开的所有文件。它既可以查看普通文件,也可以查看目录、网络连接(如TCP和UDP套接字)、管道等,大大方便了系统管理员和开发人员对系统的日常管理和诊断工作。

2025-02-10 17:56:27 485

原创 netstat命令

netstat是一个用于显示网络连接、路由表、接口统计信息、伪装连接、多播成员等网络相关信息的命令行工具。它在 Linux 系统中广泛用于网络故障排查和监控。

2025-02-09 20:42:15 352

原创 C++ 智能指针

智能指针是C++中的一种对象,它通过封装原始指针并管理其生命周期,自动释放内存,从而避免内存泄漏和悬空指针等问题。智能指针的核心思想是资源获取即初始化(RAII),即在对象构造时获取资源,在对象析构时释放资源。智能指针是C++中管理动态内存的强大工具,能够有效避免内存泄漏和悬空指针等问题。适用于单一所有权的场景,适用于共享所有权的场景,而则用于解决循环引用问题。在实际开发中,应优先使用和来创建智能指针,以提高代码的安全性和可读性。

2025-02-09 20:28:58 757

原创 C++ 模板

模板是C++中用于创建泛型代码的机制,它可以根据不同的数据类型或对象进行实例化。通过使用模板,可以做到只编写一次代码,但让它适用于多种数据类型,而无需为每种类型重写相同的逻辑。要使用模板,必须对模板进行实例化,即用具体的参数去替换模板中的模板参数。函数名和参数列表使用了模板参数T,实际使用时会根据调用函数时传递的参数类型自动推导出T的类型。定义了模板,其中T是模板参数,可以是任意类型。偏特化允许对模板的一部分参数进行特化,提供比全特化更灵活的定制方式。函数模板是通用的函数定义,用于生成处理不同类型的函数。

2025-02-07 23:28:06 414

原创 1. 编译VTK-9.3.1

编译好后,通过生成INSTALL执行安装,发现Release和Debug模式的文件会安装到一起。需要修改cmake_install.cmake中CMAKE_INSTALL_PREFIX的值开区分安装目录。

2024-08-25 14:24:26 589

原创 C++实现简易的多语言类

【代码】C++多语言方案。

2023-08-21 22:55:42 284 1

原创 Qt元对象系统

宏,该宏用于启动元对象特性,然后便可使用动态特性、信号和槽等功能了。的扩展,因此使用传统的编译器是不能直接编译启用了元对象系统的 Qt。注意:新文件不会“替换”掉旧的文件, 而是与原文件一起编译。对象间通信的信号和槽机制、运行时类型信息和动态属性系统等。宏的类的声明,则会生成另外一个包含了 Q_OBJECT。程序之前,需要把扩展的语法去掉,该功能就是 moc。包含到类的源文件中,要么被编译键接到类的实现中(的子类,提供实现了元对象特性所必须的代码。Qt 的元对象系统是。,这个新的源文件要么被。

2023-08-20 18:35:45 179

原创 [笔记]QT5.14+VS2022配置MSVC2017

背景:本地安装了Qt5.14勾选了MSVC2015 、MSVC2017、 MinGW64和Visual Studio2022。前提是本地安装了MSVC2017的相关开发套件。4,在项目工程中选用MSVC2017编译。1,设置编译器MSVC2017。本地没有安装cdb.exe的需。2,设置调试器cdb.exe。

2023-07-30 17:00:41 2631 1

原创 C++单例数据共享类实现

//sharedataclass.hclass ShareDataClass : public QObject{private:ShareDataClass() = default;ShareDataClass(const ShareDataClass&) = deault;ShareDataClass &operator=(const ShareDataClass&) = deault; ...

2021-10-18 17:14:31 83

原创 C++简单日志函数

//日志函数//.h文件int WriteLog(const char* fmt, ...);//.cpp文件#include <string>#include <stdio.h>#include <tchar.h>using namespace std;......int XXX::WriteLog(const char * fmt, ...){ char Logbuffer[300]; va_list aptr; ...

2020-09-09 09:05:02 388

空空如也

空空如也

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

TA关注的人

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