Windows

Dump分析:堆内存泄露

Dump分析:堆内存泄露

bingliaolong 5个月前 7 0

示例dump分析:堆内存泄露 代码 分析步骤一 在程序启动时,先用下面命令查看堆的情况 !heap -s !heap -stat -h 1cb0000 分析步骤二 g 让程序跑一会儿 !heap -s 对比发现Commit多了128h !heap -stat -h 1cb0000...

Windows API记述一:Interlocked系列函数、VirtualAlloc、QueryPerformanceCounter、SetThreadPriority、延迟执行、优先级工作机制(调度)

Windows API记述一:Interlocked系列函数、VirtualAlloc、QueryPerformanceCounter、SetThreadPriority、延迟执行、优先级工作机制(调度)

bingliaolong 2个月前 6 0

函数 InterlockedIncrement 概述 这两个函数是 Windows 平台上进行线程安全原子操作的核心工具,用于实现高效的无锁多线程编程 特性 原子性:CPU 硬件保证操作的不可分割性 无锁:无需传统互斥锁(mutex),性能更高 内存屏障:隐含完整的读-写内存屏障...

Windows线程同步相关

Windows线程同步相关

bingliaolong 6个月前 6 0

用户模式同步 Interlocked 系列函数 原理 通过 CPU 原子指令(如 LOCK XCHG)直接操作内存,无需进入内核态 场景 简单计数器(如引用计数) 无锁数据结构(如无锁队列) 特点 性能极高(无内核切换) 仅支持单个变量的原子操作,无法实现复杂同步 临界区(Cri...

Windows 核心编程 _ 内核对象:同步异步设备IO

Windows 核心编程 _ 内核对象:同步异步设备IO

bingliaolong 4年前 6 0

概述 在Windows应用程序中,我们可以给每个线程指定一个处理器,这样在多个处理器的机器上就可以同时执行多个操作,从而提高吞吐量。 但是,当一个线程发出一个同步I/O请求的时候,它就会被临时挂起,知道设备完成I/O请求为止。此类挂起会影响性能,因为线程卡在那里不能做别的事情。 ...

Windows高级调试_调试器

Windows高级调试_调试器

bingliaolong 4年前 6 0

调试器 关于调试器。 调试器类型 用户态调试器 内核态调试器 用户态调试器 查看调试目标的状态 线程、内存、寄存器以及进程空间中打开的内核对象等 修改调试目标的状态 实时调试 分析包含进程快照的转储文件 事后调试 调试工具 cdb.exe 字符界面 可以对windows用户态的内...

Windows 核心编程 _ 进程三

Windows 核心编程 _ 进程三

bingliaolong 4年前 5 0

进程的关联性 通常,进程中的线程可以在主机的任何CPU上执行。 然而,也可以强迫线程在可用CPU的一个子集上运行,这一点叫“处理器关联性”。 子进程继承了其父进程的关联性。 进程的错误模式 与每个进程都关联了一组标志。 这些标志的作用是让系统知道进程如何相应严重错误,包括磁盘介质...

Windows 核心编程 _ 内核对象一

Windows 核心编程 _ 内核对象一

bingliaolong 4年前 5 0

内核对象 系统会创建和处理的几种内核对象 访问令牌对象(access token) 事件对象 文件对象 文件映射对象 I/O完成端口对象 作业对象 邮件槽对象(mailslot) 互斥量对象 管道对象 进程对象 信号量对象 线程对象 可等待的计时器对象 线程池工厂对象 每个内核对...

COM组件_2

COM组件_2

bingliaolong 1年前 5 0

概述 Windows 的组件对象模型(Component Object Model,COM)是一种用于构建可重用软件组件的标准和技术 它允许软件组件以二进制形式进行互操作,独立于编程语言、开发工具和平台 COM 技术广泛应用于各种 Windows 应用程序和系统服务 包括 OLE...

Windows开发相关简记一

Windows开发相关简记一

bingliaolong 3周前 5 0

消息循环 概述 ATL消息循环 h cpp 其他:Visual studio 相关 符合模式permissive 概述 /permissive-是 Visual Studio(从 VS 2017 版本开始引入)中的一个重要编译器选项,旨在让编译器遵循最新的 C++ 语言标准(C+...

扫一扫二维码分享