我使用opencv 1.0编写了一个复杂的程序,该程序可以持续运行72小时以上。但最近我将opencv更改为2.4.6版。使用opencv 2.4.6数据结构重写了少数程序,而其他代码仍然像以前一样,opencv 2.4可以与opencv 1.0代码兼容。但是,新程序运行时间不会超过12小时,在Mat :: create时10-11小时后总会崩溃,因为我为大约120MB的图像分配内存。我使用try-catch来获取cv :: Exception错误消息。它指向alloc.cpp,消息是“未能分配xxx字节”。我查找了Tast Manager,发现该程序使用的内存不足200MB,因为它崩溃了。总内存为4GB,所有程序和系统使用的总内存大约为1GB,这意味着内存肯定足够大。 我检查了内存泄漏,发现没有帮助。我怀疑是否有太多内存段使最大内存块小于120MB。但我无法验证这一点。谁能告诉我怎样才能发现问题?或者如何在程序兑现时查看详细的内存状态? 非常感谢你。