Искам да добавя поддръжка на OpenCL към Chromium, затова използвах API като clCreateCommandQueue()
, но не мога да намеря подходящо място в Chromium за почистване.
Така че, ако не наричам API като clReleaseCommandQueue()
, ОС ще възстанови паметта след прекратяване на процеса? Или трябва да го извикам на изходната точка на процеса?
PS, командният ред е необходим през целия живот на процеса, така че просто искам да се уверя, че няма да причини изтичане на памет след прекратяване на процеса.
Благодаря за помощта.
Отговори:
2 за отговор № 1Тъй като всички обекти на OpenCL в крайна сметка се държат от драйвера на устройството, не можете да очаквате те да бъдат пуснати автоматично, след като приложението се прекрати. Това винаги е ваша работа.
0 за отговор № 2
Ако използвате OpenCL C ++ обвивка (cl.hpp), тогава компилаторът ще разбере къде да почистите вашите обекти (когато препращащият обект излиза извън обхвата).