如果我不调用clRelease *,会导致内存泄漏吗?

时间:2013-05-22 06:40:08

标签: memory-leaks opencl chromium

我想为Chromium添加一些OpenCL支持,所以我使用了像clCreateCommandQueue()这样的API,但我找不到Chromium中的适当位置来进行清理。

因此,如果我不调用像clReleaseCommandQueue()这样的API,OS会在进程终止后回收内存吗?或者我需要在流程的退出点调用它吗?

PS,在整个过程中需要命令级,所以我只想确保在进程终止后不会导致内存泄漏。

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

由于所有OpenCL对象最终都由设备驱动程序保存,因此一旦应用程序终止,您就不能指望它们自动释放。这总是你的工作。

答案 1 :(得分:0)

如果您使用OpenCL C ++包装器(cl.hpp),那么编译器将找出清理对象的位置(当引用对象超出范围时)。