Rust arenas环境下的面向相位分配

Rust arenas环境下的面向相位分配,rust,Rust,我正在尝试构建一个使用Kafka数据的应用程序。数据被聚合到5分钟的存储桶中,我需要“记住”最后10个存储桶,然后在它们变得太旧时丢弃这些存储桶 出于聚合的目的,我需要分配一些对象,并且我希望使用arena方法,以便快速分配这些对象。我想将每个桶绑定到一个特定的竞技场,这样当桶太旧时,我可以将整个桶与其竞技场一起丢弃 然而,在这种情况下,我找不到一种解释生命周期的方法,如果我维护一个Vec,那么Vec中对象的生命周期就不一样了。对于我的用例,我不能使用Idarena,因为我想使用对象作为hash

我正在尝试构建一个使用Kafka数据的应用程序。数据被聚合到5分钟的存储桶中,我需要“记住”最后10个存储桶,然后在它们变得太旧时丢弃这些存储桶

出于聚合的目的,我需要分配一些对象,并且我希望使用arena方法,以便快速分配这些对象。我想将每个桶绑定到一个特定的竞技场,这样当桶太旧时,我可以将整个桶与其竞技场一起丢弃

然而,在这种情况下,我找不到一种解释生命周期的方法,如果我维护一个
Vec
,那么
Vec
中对象的生命周期就不一样了。对于我的用例,我不能使用
Id
arena,因为我想使用对象作为hashmap的键。我不想为竞技场中的每个项目生成一个
Rc
,因为这会增加每个项目的内存占用(这些都是很多非常小的项目),所以我想在我的bucket中保留对竞技场中分配的对象的实际引用


很抱歉,这个问题有点模糊,但我希望得到一些关于如何解决这种情况的提示。

您能使用简单向量作为竞技场,并使用索引作为参考吗?
Rc
非常快速。我怀疑使用它们会对性能产生重大影响,所以我会说使用它们,除非测量结果表明它们在您的特定情况下会导致问题。是的,我首先尝试了rc,实际上我不准确真正的问题是rc内存占用,我有许多非常小的单字节向量,rc本身比矢量大,正如我提到的,我不能使用索引,因为我希望竞技场中的“对象”用作hashmap键。你可以使用简单的矢量作为竞技场,并使用索引作为参考吗?
rc
非常快。我怀疑使用它们会对性能产生重大影响,所以我会说使用它们,除非测量结果表明它们在您的特定情况下会导致问题。是的,我首先尝试了rc,实际上我不准确真正的问题是rc内存占用,我有许多非常小的单字节向量,rc本身比我提到的向量大,我不能使用索引,因为我希望来自竞技场的“对象”用作hashmap键