上周末,发现多个shp文件操作后,竟然崩溃,
今天查了一天,原以为是std::vector没有释放掉,最后发现原来是
OGRFeature * pFeature = poLayer->GetFeature(featureID);后,会载入内存,但是不销毁的话,关掉shp文件也会驻留在内存里。
因此,需要再加上这句
OGRFeature::DestroyFeature(pFeature);
一切平静了
本文解决了在操作shp文件过程中遇到的内存泄漏问题。通过深入研究发现,使用OGRFeature对象读取shp文件特征后,如果不及时销毁,会导致内存占用持续增加。文章给出了具体的解决方案:在操作完成后调用OGRFeature::DestroyFeature方法释放资源。
上周末,发现多个shp文件操作后,竟然崩溃,
今天查了一天,原以为是std::vector没有释放掉,最后发现原来是
OGRFeature * pFeature = poLayer->GetFeature(featureID);后,会载入内存,但是不销毁的话,关掉shp文件也会驻留在内存里。
因此,需要再加上这句
OGRFeature::DestroyFeature(pFeature);
一切平静了