在运行时检测 C++ 堆碎片的可移植方法?

2024-03-01

我正在编写一个基于 qt 的 C++ 应用程序,我需要能够检测内存碎片,以便检查当前系统是否能够真正承受内存负载:程序加载一个大图像(15/21 兆像素是标准)在内存中,然后对其执行一些过滤(使用稀疏矩阵)。 例如,我在 Windows 中遇到内存碎片问题,VMMap 在这方面非常有帮助:问题是一些 DLL(Wacom 数位板“wintab32.dll”和 UltraMon 应用程序)没有重新定位,因此正在分割地址空间在进程的 0x10000000-0x30000000 VA 处。

我想为应用程序提供对碎片问题的某种认识,并想知道提供 VMMAP 信息的跨平台 (linux/mac/win32) 方法是否已经存在。


简短的回答:没有便携的方式。

更长的答案:堆的实现方式及其工作方式是实现的实现细节,在平台、std 库和操作系统之间存在很大差异。您必须为每个实现创建不同的版本 - 前提是该实现为您提供了一个 API 来挂钩它。 (哪个I think您的目标三个平台应该是这种情况。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在运行时检测 C++ 堆碎片的可移植方法? 的相关文章

  • C# 中集合作为装饰器

    在设计集合基础设施时 我们遇到了一个非常 明显 的问题 假设您需要实现许多 子 类型的集合 其中一个方面是存储相关 list array等等 而另一个是行为相关 ordered 仅删除 可观察到的 每次更改时都会触发一个事件 等 显然 再次
  • 添加新包会破坏 .NET 5 应用程序

    我一直试图找出为什么我的控制台应用程序在引入新包后立即失败 使用IdentityModel OidcClient and Microsoft AspNetCore Server Kestrel only有效 但是添加时Microsoft E
  • 哪个运算符更快:!= 或 >

    哪个运算符更快 gt or 示例 我想针对 1 测试一个值 可以为正值或 1 if time gt 1 or if time 1 时间的类型为 int 标准没说 因此 这取决于给定编译器在给定版本中生成哪些操作码 以及给定 CPU 执行它们
  • 如何在代码中设置控件模板?

    我在 XAML 中有这个
  • 如何序列化其类相互引用的类层次结构,但避免 XmlInclude?

    我有一个类的层次结构 我想使用XmlSerializer类及其相关属性 有一个基本抽象类 然后是相当多的派生类 在下面的代码中 我已将派生类的数量减少到五个 但实际代码中还有更多 这些类形成一个层次结构 并且经常包含对层次结构中类的实例的引
  • 如何在 C# winforms 中翻译文本

    我需要翻译一些文本 我正在尝试使用谷歌翻译器来翻译它 我检查了这个article http martinnormark com translate text in c using google translate 但我在以下代码中遇到异常
  • 使用 Opengl 绘制立方体 3D

    我想使用 OpenGL 绘制 3D 立方体这是我的代码如何纠正错误 float ver 8 3 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
  • 如何使用 C# 从数据库中检索多个图像

    我有一个包含9张图像的数据库 这些图像不断变化 所以我无法直接设置src在 HTML 中 img 标签来显示 9 个图像 我必须从数据库中选择它们并相应地绑定它们 我可以使用以下命令检索并打印 1 张图像Response BinaryWri
  • Haskell FFI - 你能从 Haskell 数据结构中获取 C 指针吗?

    我有很多 C 结构体 结构如下 typedef struct unsigned int a unsigned int b StructA 还有很多功能 比如 void doSomethingWith StructA StructB Stru
  • 如何在 servicestack.net 中实现身份验证

    我正在调查 servicestack net 但它的示例和文章似乎没有涵盖身份验证 这是由 servicestack net 处理的东西 如果是的话如何处理 我特别有兴趣实现对以下方面的支持 OAuth 因此能够检查原始请求并验证它 检索关
  • 我们如何找到 C# 整数数组中的项目计数?

    我需要在 C 数组中查找类型为整数的项目计数 我的意思是 int intArray new int 10 int 0 34 int 1 65 int 2 98 intArray 的项目计数为 3 我在下面找到了 strArray 的代码 但
  • 推导具有两个以上参数的 std::function

    我想知道为什么std function http en cppreference com w cpp utility functional function只知道有两个参数的函数 我已经编写了一些运行良好的代码 但存在许多限制 欢迎任何反馈
  • 从 std::list 中删除具有特定值的元素

    我需要从 std list 中删除具有特定值的元素 随着list
  • __syncthreads() 死锁

    如果只有部分线程执行 syncthreads 会导致死锁吗 我有一个这样的内核 global void Kernel int N int a if threadIdx x
  • 静态、非成员或静态非成员函数?

    每当我有一些 实用 方向的功能时 我最终都会想知道哪个选项是最好的 例如 在我正在工作的上下文中打印消息结构 自己的或外部的 一些编码 解码代码或一些有用的转换函数 我想到的选项是 1 辅助类 结构中的静态函数 struct helper
  • 在一个整数中找到另一个整数的 MSB 位置左侧的 N 个连续零位

    问题是 给定一个整数val1然后 给定第二个整数 找到最高位组 最高有效位 的位置val2找到第一个整数生成的位置左侧的未设置位的连续区域 width指定minimum必须在连续中找到的未设置位的数量 即width里面没有 0 这是我的解决
  • 为什么我的 QGestureRecognizer 收不到触摸事件?

    上下文 我正在尝试创建一个类似推子的小部件 它可以在同一视图中具有多个实例 每个实例都可以由不同的手指同时控制 我想用Qt的手势识别系统 http qt project org doc qt 4 8 gestures overview ht
  • 编译器如何解析在变长数组之后声明的变量的地址?

    假设我有以下函数 它使用可变长度数组 void func int size int var1 int arr size int var2 编译器如何确定地址var2 我能想到的唯一方法就是放置arr after var1 and var2
  • WCF maxBytesPerRead 限制为 4096

    我在流模式下使用基本的 WCF Web 服务从服务器下载文件 我已将服务器端的绑定指定为
  • 来自 StreamReader 的原始文件字节,幻数检测

    我试图区分 文本文件 和 二进制 文件 因为我实际上想忽略具有 不可读 内容的文件 我有一个文件 我认为它是 GZIP 存档 我试图通过检测幻数 文件签名来忽略此类文件 如果我在 Notepad 中使用十六进制编辑器插件打开文件 我可以看到

随机推荐

  • 活动 android 中的自动增量

    我尝试使用active android 我对如何在表中实现自动增量字段有疑问 在他们的文档中 他们提供了这样的代码 Item item new Item item remoteId 1 item category restaurants i
  • SQL VIEW 应该始终处于 1NF 中吗?

    SQL VIEW 是一个全局逻辑表 可能会也可能不会持久化 但它仍然是一张桌子 因此 VIEW 是否应该始终遵循第一范式 1NF 即没有重复的行 只有标量类型 没有从上到下或从左到右的排序等 那么更高的范式呢 对我来说 我的应用程序 消耗
  • 链式异常有什么优点

    我不明白在代码中使用链式异常有什么好处 考虑到Java 世界中的 ResourceLoader 示例 http www javaworld com javaworld jw 09 2001 jw 0914 exceptions html 如
  • 使用APACHE POI转换PPT转图片时汉字转成方块

    当我尝试使用 Apache POI 项目来转换我的项目时遇到问题PPT到图像 我的代码如下 FileInputStream is new FileInputStream test ppt SlideShow ppt new SlideSho
  • SVN 锁定错误:锁定令牌 URI 的方案错误

    我最近尝试在 SVN 结账中锁定一个文件 但出现以下错误 svn lock m 一条评论 File1 pas svn 警告 W160037 锁定令牌 URI C Program Files x86 VisualSVN Server gt e
  • 如何在 NSWindow 中显示工作表视图

    How do I implement the view in following image The view which appears when button is clicked in System Preferences gt Ne
  • EF6 CodeFirst 我的 [Key] Id 列未像标识列那样自动递增

    我有几个类需要从拥有 Id 的公共基类派生 暂时忽略除其中一个之外的所有内容 假设我们有 public class MyBase Key public int Id get set public class MyName MyBase pu
  • 字符串作为模型

    我认为这应该是一个更容易的任务 Edit 直到今天 Asp Net MVC 似乎还无法针对这种情况提供一个简洁的解决方案 如果您想传递一个简单的字符串作为模型 并且不必定义更多的类和东西来这样做 有任何想法吗 传递简单字符串作为模型 htt
  • 对齐宏内核

    我无法理解这个宏的作用 这些定义在linux kernel但我的怀疑与此无关 我无法理解什么是 x mask mask 线确实如此 define ALIGN x a ALIGN MASK x typeof x a 1 define ALIG
  • 获取 span 元素填充 div 中的空间

    我正在尝试做这样的事情 fixed width Title1 value1 Title2 another value Another title yet another value 这是我的 html 示例代码 div class cont
  • Java 8 Streams peek/map 不收集不提供输出

    下面的代码不打印任何值 没有打印任何 System out println 语句 我假设 peek 涉及修改数据 令人惊讶的是 peek 内部的逻辑甚至没有被执行 如果我使用收集器收集流 我会看到所需的行为 为什么至少 print 语句 1
  • 使用脚本在电子邮件中嵌入谷歌表单,就像使用电子邮件中包含表单选项时谷歌所做的那样

    我必须向一些人发送一份表格 我用谷歌脚本来完成 我尝试使用以下代码将表单嵌入到电子邮件中 https stackoverflow com a 23671529 4305236 https stackoverflow com a 236715
  • NodeJs 延迟 Promise.all() 中的每个 Promise

    我正在尝试更新不久前创建的一个使用nodejs的工具 我不是JS开发人员 所以我试图将代码拼凑在一起 但我陷入了最后一个障碍 新功能将采用 swagger json 定义 使用以下方法将端点与 AWS 服务上匹配的 API 网关进行比较 a
  • Oracle 相当于 SQL Server 包含要索引的列

    Oracle 是否允许我包含要索引的列 如 SQL ServerINCLUDE中的条款CREATE INDEX Thanks 不 Oracle 中的索引要么包含索引本身中的列 要么不包含 然而 根据您尝试解决的问题 索引组织表可能是 Ora
  • macOS Catalina - 无法打开“fse.node”,因为无法验证开发人员。在执行 npm run dev 或 watch 时

    在 macOS Catalina 10 15 3 上 我在运行时收到以下错误消息npm run dev or npm run watch 这似乎与nodejs但不知道如何解决它 fse node 无法打开 因为无法验证开发者 macOS 无
  • 如何在 GTK 中使用剪贴板?

    我怎样才能使用Gtk剪贴板 https developer gnome org gtk3 stable gtk3 Clipboards html 读取和写入剪贴板 作为示例 请向我展示如何获取当前剪贴板内容并将其打印到控制台 我尝试使用此方
  • 从 React Native 中的 api 拦截器(组件外部)重定向到屏幕

    我正在开发一个 React Native 应用程序 该应用程序使用 JWT 令牌对请求进行身份验证 为此 我创建了 axios 请求和响应拦截器 将令牌添加到每个请求 请求拦截器 并在响应具有 401 HTTP 状态 响应拦截器 时将用户重
  • chrome webdriver 将视口设置为低于 500px?

    在我基于 selenium 的测试中 我将窗口大小设置为 400 w 719 h 以创建 400x640 的内部视口大小 我的大多数测试都是基于该尺寸 尽管有些测试使用其他尺寸 Dimension size new Dimension 40
  • C++线程栈地址范围

    C 标准是否提供了关于线程堆栈的非重叠性质的保证 如由一个线程启动 std thread 特别是 是否可以保证线程在线程堆栈的进程地址空间中拥有自己的 独占的 分配的范围 标准中哪里描述了这一点 例如 std uintptr t foo a
  • 在运行时检测 C++ 堆碎片的可移植方法?

    我正在编写一个基于 qt 的 C 应用程序 我需要能够检测内存碎片 以便检查当前系统是否能够真正承受内存负载 程序加载一个大图像 15 21 兆像素是标准 在内存中 然后对其执行一些过滤 使用稀疏矩阵 例如 我在 Windows 中遇到内存