Visual Studio 安装检测内存工具-Visual Leak Detetctor。(适用于VS2013、VS2015、VS2017、VS2019、VS2022版本)

简介: Visual Studio 安装检测内存工具-Visual Leak Detetctor。(适用于VS2013、VS2015、VS2017、VS2019、VS2022版本)

前言

如果你的Visual Studio版本是处于2008, 2010, 2012, 2013, 2015这些可以直接通过VS内置的插件安装方式安装。否则你只能通过官网下载进行下载。

Visual Leak Detetctor

应用环境:Windows + VC

编程语言:C/C++

使用方法:只需包含头文件vld.h,并添加提供的lib

结果输出:输出到VC的调试窗口中

设计思路: 注册_CrtSetAllocHook钩子函数,使用VC自带的CRT Debug Heap

优点:可以获得内存泄露点的调用堆栈,可以得到内存泄露的完整数据


外部安装VLD

首先你需要下载Visual Leak Detetctor,地址:官网下载

安装包

下载好,应该是这个样子的

然后点击安装,

点击下一步

这里需要勾选I accept the agreement(我同意)选项。

这里可以用默认路径也可以自己选择路径,建议路径不要有中文

下一步

下一步

点击Install,进行安装。

这里提醒让你把vs先关闭然后再点击弹框的确定按钮。

出现这个界面就是安装完成咯。


配置VLD

查看相关文件

我们现在需要去刚刚的安装路径下:


在include路径下,可以看到我们之后需要使用vld.h头文件。

在lib\win64路径下(这里需要和你实际的环境一致,32位的选择win32文件夹),可以看到我们之后需要使用vld.lib头文件。


将VLD配置到C++项目中

创建一个C++的空工程

添加如下代码,用于测试。

#include <iostream>
int main()
{
  int* a = new int(3);
  return 0;
}

截屏如下:

配置头文件

这里我们需要在左侧切换到C/C++

在右侧的Additional Include Directories中添加vld.h头文件。



配置lib库

在左侧选择Linker,然后选择Input,在右侧中的Additional Dependencies中添加D:\Program Files (x86)\Visual Leak Detector\lib\Win64\vld.lib;路径。


具体如下:

最后切记点应用保存哦。


测试Visual Leak Detetctor

这时需要我们在测试代码中添加vld.h头文件。

然后点击运行,我们就可以在控制台看到泄露的内存字节数,以及泄漏的位置。如果你想要让这个输出变得简洁化,就需要手动设置vld安装路径下的vld.ini配置文件。


目录
相关文章
|
9天前
|
缓存 算法 Java
本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制
在现代软件开发中,性能优化至关重要。本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制。通过调整垃圾回收器参数、优化堆大小与布局、使用对象池和缓存技术,开发者可显著提升应用性能和稳定性。
30 6
|
18天前
|
Web App开发 JavaScript 前端开发
使用 Chrome 浏览器的内存分析工具来检测 JavaScript 中的内存泄漏
【10月更文挑战第25天】利用 Chrome 浏览器的内存分析工具,可以较为准确地检测 JavaScript 中的内存泄漏问题,并帮助我们找出潜在的泄漏点,以便采取相应的解决措施。
127 9
|
18天前
|
监控 JavaScript 前端开发
如何检测和解决 JavaScript 中内存泄漏问题
【10月更文挑战第25天】解决内存泄漏问题需要对代码有深入的理解和细致的排查。同时,不断优化和改进代码的结构和逻辑也是预防内存泄漏的重要措施。
34 6
|
21天前
|
Web App开发 缓存 JavaScript
如何检测和解决闭包引起的内存泄露
闭包引起的内存泄露是JavaScript开发中常见的问题。本文介绍了闭包导致内存泄露的原因,以及如何通过工具检测和代码优化来解决这些问题。
|
1月前
|
存储 监控 算法
JVM调优深度剖析:内存模型、垃圾收集、工具与实战
【10月更文挑战第9天】在Java开发领域,Java虚拟机(JVM)的性能调优是构建高性能、高并发系统不可或缺的一部分。作为一名资深架构师,深入理解JVM的内存模型、垃圾收集机制、调优工具及其实现原理,对于提升系统的整体性能和稳定性至关重要。本文将深入探讨这些内容,并提供针对单机几十万并发系统的JVM调优策略和Java代码示例。
49 2
|
24天前
|
缓存 监控 Java
内存泄漏:深入理解、检测与解决
【10月更文挑战第19天】内存泄漏:深入理解、检测与解决
42 0
|
3月前
|
存储 编译器 C语言
【C语言篇】数据在内存中的存储(超详细)
浮点数就采⽤下⾯的规则表⽰,即指数E的真实值加上127(或1023),再将有效数字M去掉整数部分的1。
370 0
|
22天前
|
存储 C语言
数据在内存中的存储方式
本文介绍了计算机中整数和浮点数的存储方式,包括整数的原码、反码、补码,以及浮点数的IEEE754标准存储格式。同时,探讨了大小端字节序的概念及其判断方法,通过实例代码展示了这些概念的实际应用。
46 1
|
27天前
|
存储
共用体在内存中如何存储数据
共用体(Union)在内存中为所有成员分配同一段内存空间,大小等于最大成员所需的空间。这意味着所有成员共享同一块内存,但同一时间只能存储其中一个成员的数据,无法同时保存多个成员的值。
|
1月前
|
存储 弹性计算 算法
前端大模型应用笔记(四):如何在资源受限例如1核和1G内存的端侧或ECS上运行一个合适的向量存储库及如何优化
本文探讨了在资源受限的嵌入式设备(如1核处理器和1GB内存)上实现高效向量存储和检索的方法,旨在支持端侧大模型应用。文章分析了Annoy、HNSWLib、NMSLib、FLANN、VP-Trees和Lshbox等向量存储库的特点与适用场景,推荐Annoy作为多数情况下的首选方案,并提出了数据预处理、索引优化、查询优化等策略以提升性能。通过这些方法,即使在资源受限的环境中也能实现高效的向量检索。