我在intel Xscale设备上运行我的c ++应用程序.问题是,当我用Valgrind运行我的应用程序offtarget(Ubuntu)时,它没有显示任何内存泄漏.
但是当我在目标系统上运行它时,它以50K可用内存开始,并在一夜之间减少到2K.如何捕捉这种泄漏,这是Valgrind没有显示出来的?
这些小型嵌入式设备的常见罪魁祸首是内存碎片.您的应用程序可能在两个对象之间有可用内存.对此最常见的解决方案是为最常见的类使用专用分配器(C++中的operator new).纯粹用于大小为N的对象的内存池不会碎片 - 两个对象之间的空间总是N的倍数.