繁体   English   中英

glReadPixels()Opengles中的内存泄漏?

[英]glReadPixels() memory leak in opengles?

我遇到glReadPixels内存泄漏问题。请参见附件 屏幕截图

注意标有红线的区域。malloc空闲对内存还可以,但是glReadPixels分配了额外的3M内存,我已经从doc中读取了glReadPixels官方文档

其中没有提到glReadPixels的任何内存分配信息。 那么,glReadPixels是否真正分配了内存。如果是这样,如何释放它?

看到单个调用期间的内存增加量还远不能证明内存泄漏。 在许多情况下,报告的可用内存不会回到原始值,而不会发生任何错误。 例如,正如@derhass在评论中已经建议的那样,驱动程序可能正在分配尚未释放的缓冲区,或者有意保留该缓冲区以备后用。 根据内存使用情况的测量方式,内存管理系统也可能不会在释放内存时不将页面返回给操作系统,而是将其保留以供将来分配。

如果需要更多结论性数据,则需要重复该操作。 尝试循环执行同一件事几千次,然后观察一段时间内的内存使用情况。 如果它逐渐增加,您就有理由相信可能确实存在内存泄漏。 最好画一个图。 如果在压力测试期间内存使用量最初增加,然后趋于平稳,则可能一切正常。 如果在整个测试过程中线性增加,则很可能发生内存泄漏。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM