在交易平台(低延迟环境)的订单簿中,您需要存储每个订单ID,至少要验证每个订单是否唯一。您在交易日可以获得的订单ID数量是无限的。除了使用历史数据分析之外,您无法正确“猜测”预分配数据结构。有哪些方案可以避免日内订单ID容器重新分配?
答案 0 :(得分:3)
在交易平台(低延迟环境)的订单簿中,您需要存储每个订单ID,至少要验证每个订单是否唯一。您在交易日可以获得的订单ID数量是无限的。除了使用历史数据分析之外,您无法正确“猜测”预分配数据结构。有哪些方案可以避免日内订单ID容器重新分配?
好问题。一种解决方案是使用树数据结构,其中每个分支是单独的堆分配。这是大多数纯功能数据结构(例如OCaml和F#中的Set
和Map
)的工作原理,它使它们增量,因此插入和删除总是为O(log n )最坏的情况。