Пространство имён memory
Содержание
API
Тип Handle Handle определяется в TypeScript следующим образом:
type Handle = [number, number]
Это стандартный способ представления 64-битного указателя в Napa.
Интерфейс Shareable Интерфейс для нативного объекта, который может быть использован совместно несколькими потоками JavaScript.
Интерфейс Allocator Интерфейс для распределителя памяти, который выделяет память для нативных объектов.
allocator.allocate(size: number): Handle Выделяет память запрошенного размера.
var handle = allocator.allocate(10);
allocator.deallocate(handle: Handle, sizeHint: number): void Освобождает память из входного дескриптора с подсказкой размера, которая полезна для некоторых реализаций распределителей C++ для освобождения памяти.
allocator.deallocate(handle, 10);
allocator.type: string Получает строковый идентификатор типа для распределителя, который будет полезен при отладке.
Интерфейс AllocatorDebugger AllocatorDebugger расширяет интерфейс Allocator, с функцией-членом getDebugInfo для предоставления информации об отладке. В основном отладчик распределителя будет использовать переданный распределитель для выделения памяти, одновременно перехватывая его для отслеживания количества и размера выделения.
allocatorDebugger.getDebugInfo(): string Получает информацию об отладке для распределения. Реализации интерфейса AllocatorDebugger могут иметь разные схемы информации об отладке.
Функция debugAllocator(allocator: Allocator): AllocatorDebugger Возвращает простой отладчик распределителя, который возвращает информацию об отладке, например:
{
"allocate": 10,
"allocateSize": 1024,
"deallocate": 8,
"deallocateSize": 912
}
Объект crtAllocator Возвращает распределитель C-runtime из общей библиотеки Napa.js. Соответствующая часть C++ — napa::memory::GetCrtAllocator().
Объект defaultAllocator Возвращает стандартный распределитель из общей библиотеки Napa.js. Его соответствующая часть C++ — napa::memory::GetDefaultAllocator(). Пользователи могут установить обратные вызовы по умолчанию для выделения/освобождения памяти в API napa_allocator_set.
Выделение памяти в C++-аддоне Выделение памяти в C++-аддоне является сложным. Распространённой ошибкой является выделение памяти в одной dll, но освобождение в другой. Это может вызвать проблемы, если C-runtime в этих двух dll скомпилированы одинаково. Также существуют сложные сценарии, в которых пользователь хочет настроить выделение памяти. Napa.js предоставляет API для настройки распределителя памяти.
Рекомендуемый способ выделения памяти TBD
Настройка выделения памяти TBD
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )