包含此页的版本:
不含此页的版本:
这IUnityMemoryManager内存管理器 API 允许您在本机中使用 Unity 的内存管理和内存分析插件在 Unity 外部创建的一组代码,用于在 Unity 中创建功能。可以在 Unity 中使用两种插件:托管插件(使用 Visual Studio 等工具创建的托管 .NET 程序集)和本机插件(特定于平台的本机代码库)。更多信息
请参阅术语表用 C 或 C++ 编写。
此 API 使您能够:
与等效的 C++ 内存管理方法相比,这些功能可以更轻松地管理和分析插件的内存分配。
插件 API 由IUnityMemoryManager接口,该接口在IUnityMemoryManager.h头文件,位于 PluginAPI 文件夹中。
有关详细信息,请参阅头文件中作为代码注释提供的文档。
应熟悉以下概念才能有效使用此 API:
要跟踪插件的内存使用情况,请使用内存性能分析器包拍摄快照,然后在“所有内存”选项卡中打开快照。当您使用IUnityMemoryManager要分配内存,内存分析器会在创建每个分配器时分配的区域和对象名称下显示插件的内存分配。
以下屏幕截图显示了内存探查器包窗口,该窗口显示了本机插件使用的内存,其中使用IUnityMemoryManager应用程序接口。在此示例中,调用了 CreateAllocator 方法,其中“MyNativePlugin”作为 areaName 参数,“MyPluginAllocator”作为 objectName 参数。有关详细信息,请参阅 IUnityMemoryManager API 参考。
有关更多信息,请参阅快照。
此 API 使您能够在开发本机插件时使用 Unity 的内存管理系统。如上所述,这具有主要好处,但仍然存在局限性。Unity 的内存管理系统:
由于本机 C++ 中的内存不受管理,因此需要跟踪应用程序的任何内存要求。这包括选择要分配的正确内存量,并确保在不再需要时取消分配内存。
这IUnityMemoryManagerAPI 会影响性能,因为每个分配都需要虚拟调用。为了最大程度地减少这种性能影响,请使用 API 来降低分配较大内存块的频率。要处理更小和更频繁的分配,请使用此 API 分配单个较大的块,然后编写自己的代码来管理该块中的内存。不要将此 API 用于频繁的小额分配。