Memory management 如何在低延迟环境中避免重新分配?

Memory management 如何在低延迟环境中避免重新分配?,memory-management,trading,low-latency,Memory Management,Trading,Low Latency,在交易平台(低延迟环境)的订单簿中,您需要存储每个订单ID,至少要验证每个订单是唯一的。您在一个交易日可以收到的订单ID数量是无限的。除了使用历史数据分析外,没有任何数字可以适当地“猜测”来预先分配数据结构。有哪些方案可以避免日内订单ID容器的重新分配 在交易平台(低延迟环境)的订单簿中,您需要存储每个订单ID,至少要验证每个订单是唯一的。您在一个交易日可以收到的订单ID数量是无限的。除了使用历史数据分析外,没有任何数字可以适当地“猜测”来预先分配数据结构。有哪些方案可以避免日内订单ID容器的重

在交易平台(低延迟环境)的订单簿中,您需要存储每个订单ID,至少要验证每个订单是唯一的。您在一个交易日可以收到的订单ID数量是无限的。除了使用历史数据分析外,没有任何数字可以适当地“猜测”来预先分配数据结构。有哪些方案可以避免日内订单ID容器的重新分配

在交易平台(低延迟环境)的订单簿中,您需要存储每个订单ID,至少要验证每个订单是唯一的。您在一个交易日可以收到的订单ID数量是无限的。除了使用历史数据分析外,没有任何数字可以适当地“猜测”来预先分配数据结构。有哪些方案可以避免日内订单ID容器的重新分配


好问题。一种解决方案是使用树数据结构,其中每个分支都是单独的堆分配。这就是大多数纯功能数据结构(例如OCaml和F#中的
Set
Map
)的工作方式,它使它们递增,因此插入和删除总是O(logn)最坏的情况。

面试或作业问题?我也不太高兴。为什么会被否决?这是一个很好的问题,一个我自己断断续续思考了一段时间的问题。我认为这是一个很好的问题,但这里的人们在看待世界的方式上往往心胸狭窄。