Интерполировать точки данных в r

Вы можете использовать Unmanaged тип для обхода ARC для определенных объектов. Я не очень много пробовал, но я думаю, что это будет выглядеть примерно так:

  1. Перед критическим критическим разделом оберните объекты, для которых вы хотите пропустить ARC в значениях Unmanaged :
    let unmanagedObj = Unmanaged.passRetained(obj)
    
  2. Внутри критического раздела передача значения Unmanaged вокруг не приведет к накладным расходам ссылок. Когда вам нужно использовать объект, извлеките его так:
    let obj = unmanagedObj.takeUnretainedValue()
    
  3. После критического раздела отпустите объект:
    unmanagedObj.release()
    

Конечно, это работает только до тех пор, пока вы контролируете функции, необходимые для передачи объекта, потому что вы должны изменить их на выбор объекта на значение Unmanaged. Я не знаю, так ли это для вас.

Возможно, вы можете выяснить, какие типы объектов вызывают наибольшую нагрузку на подсчет ссылок в вашем коде, переключив различные части графика объекта на Unmanaged.

1
задан agf1997 18 January 2019 в 19:42
поделиться