/ / Якщо я не телефоную clRelease *, це спричинить витік пам'яті? - витоки пам'яті, opencl, хром

Якщо я не називаю clRelease *, це призведе до витоку пам'яті? - витоки пам'яті, відкриті, хрому

Я хочу додати деяку підтримку OpenCL до Chromium, тому я використовував такі API clCreateCommandQueue(), але я не можу знайти належне місце в Chromium, щоб зробити прибирання.

Отже, якщо я не закликаю такі API clReleaseCommandQueue(), чи поверне ОС оперативну пам'ять після закінчення процесу? Або мені потрібно викликати це в точці виходу процесу?

PS, Командна команда потрібна протягом усього життя процесу, тому я просто хочу переконатися, що це не спричинить витік пам'яті після закінчення процесу.

Дякую за допомогу.

Відповіді:

2 для відповіді № 1

Оскільки, в кінцевому рахунку, всі об’єкти OpenCL утримуються драйвером пристрою, ви не можете очікувати, що вони будуть автоматично випущені після закінчення програми. Це завжди ваша робота.


0 для відповіді № 2

Якщо ви використовуєте обгортку OpenCL C ++ (cl.hpp), тоді компілятор з’ясує, де очистити ваші об’єкти (коли посилається об’єкт виходить за межі області).