gpt4 book ai didi

c++ - 内存密集型应用程序中的内存管理

转载 作者:可可西里 更新时间:2023-11-01 12:57:16 27 4
gpt4 key购买 nike

如果您在 Windows 上使用 C++ 开发内存密集型应用程序,您是选择编写自己的自定义内存管理器以从虚拟地址空间分配内存,还是允许 CRT 控制并为您进行内存管理?我特别关心堆上小对象的分配和释放造成的碎片。因此,我认为即使内存足够但碎片化,进程也会耗尽内存。

最佳答案

我认为最好的办法是在配置文件证明 CRT 正在以一种损害应用程序性能的方式产生内存碎片之前不要实现它。 CRT、核心操作系统和 STL 人员花费大量时间思考内存管理。

很有可能您的代码无需更改即可在现有分配器下正常运行。与您第一次获得正确的内存分配器相比,这肯定有更好的机会。我以前为类似情况编写过内存分配器,这是一项艰巨的任务。不出所料,我继承的版本充满了碎片化问题。

等到配置文件显示存在问题的另一个好处是,您还会知道自己是否真的修复了任何问题。这是性能修复中最重要的部分。

只要您使用的是标准集合类和算法(例如 STL/BOOST),就不难在稍后的周期中插入一个新的分配器来修复您的代码库中执行以下操作的部分需要修复。您不太可能需要为整个程序手动编码分配器。

关于c++ - 内存密集型应用程序中的内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/473958/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com