C++ UDx 的资源使用情况
通过将类实例化并创建逻辑变量,UDx 可将自己占用的内存数量减至最少。UDx 的此基本内存使用量相当小,您完全不必关心此内存使用量。
如果 UDx 需要为数据结构分配超过 1 MB 或 2 MB 内存,或者需要访问其他资源(例如文件),您必须向 Vertica 通知其资源使用情况。然后,Vertica 可以先确保 UDx 所需的资源可用,接着再运行使用该 UDx 的查询。如果许多调用该 UDx 的查询同时运行,则即使是中等内存使用量(例如,UDx 的每个调用各 10 MB)也会成为问题。
注意
如果 Udx 分配自己的内存,您一定要确保 它能正确释放内存。即使未能释放已分配内存的一个字节,也可能产生严重的后果。您不应让代码分配自己的内存,而是应使用 C++vt_alloc
宏,该宏会利用 Vertica 自有的内存管理器来分配和跟踪内存。UDx 完成执行后,系统可保证正确释放该内存。有关详细信息,请参阅为 UDx 分配资源。