Как обнаружить утечки MTLBuffer в XCode, я использую XCode 10.2 с отключенным ARC и выделяю память GPU с помощью "newBufferWithBytes" - PullRequest
0 голосов
/ 28 июня 2019

Я использую Xcode10.2 с отключенным ARC и не могу найти ссылки на просочившиеся MTLBuffers в коде.

Например, в примере проекта Xcode с отключенным ARC, если я напишу код ниже для выделения памяти GPU и никогда не очищатьэто, высокая загрузка памяти наблюдается.

int p[1000000];
memset(p,25,sizeof(int)*1000000);
id<MTLBuffer> tmpBuffer = [self.device newBufferWithBytes:p 
       length:sizeof(int)*1000000 options:0 ];

Могу ли я найти эту необработанную ссылку на память, используя карты памяти Xcode или любой другой инструмент в приборе.

  1. Я пробовал XcodeКарта памяти для отслеживания утечек MTLBuffers.
  2. Утилиты командной строки MacOS vmmap, malloc_history, leaks.
int p[1000000];
memset(p,25,sizeof(int)*1000000);
id<MTLBuffer> tmpBuffer = [self.device newBufferWithBytes:p 
       length:sizeof(int)*1000000 options:0 ];
//[tmpBuffer setPurgeableState:MTLPurgeableStateEmpty];
...