当前位置:  开发笔记 > 编程语言 > 正文

内存密集型应用中的内存管理

如何解决《内存密集型应用中的内存管理》经验,为你挑选了1个好方法。

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



1> JaredPar..:

我认为最好的办法是在配置文件证明 CRT以损害应用程序性能的方式破坏内存之前不要实现.CRT,核心操作系统和STL人员花了很多时间考虑内存管理.

您的代码很可能在现有分配器下执行得非常好,无需进行任何更改.肯定有更好的机会,而不是你第一次获得内存分配器.我之前已经为类似情况编写了内存分配器,这是一项艰巨的任务.不那么令人惊讶的是,我继承的版本充斥着碎片问题.

等到配置文件显示出问题的另一个好处是,您还将知道您是否确实修复过任何问题.这是性能修复中最重要的部分.

只要您使用标准集合类和算法(例如STL/BOOST),就不应该很难在周期中插入新的分配器来修复需要的代码库部分.固定.您不太可能需要为整个程序使用手动编码分配器.


我希望我能把这个答案投票100次.我曾经和那些相信他们能够比那些有全职工作的程序员更好地优化代码的人一起工作.最重要的是,他们从未测试过任何"优化".
推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有