/ / Ако не се обадя на clRelease *, ще причини ли теча на паметта? - течове на памет, opencl, хром

Ако не се обадя clRelease *, ще причини ли изтичане на памет? - изтичане на памет, opencl, хром

Искам да добавя поддръжка на OpenCL към Chromium, затова използвах API като clCreateCommandQueue(), но не мога да намеря подходящо място в Chromium за почистване.

Така че, ако не наричам API като clReleaseCommandQueue(), ОС ще възстанови паметта след прекратяване на процеса? Или трябва да го извикам на изходната точка на процеса?

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

Благодаря за помощта.

Отговори:

2 за отговор № 1

Тъй като всички обекти на OpenCL в крайна сметка се държат от драйвера на устройството, не можете да очаквате те да бъдат пуснати автоматично, след като приложението се прекрати. Това винаги е ваша работа.


0 за отговор № 2

Ако използвате OpenCL C ++ обвивка (cl.hpp), тогава компилаторът ще разбере къде да почистите вашите обекти (когато препращащият обект излиза извън обхвата).