gpt4 book ai didi

c++ - 高效地分配许多短命的小对象

转载 作者:可可西里 更新时间:2023-11-01 16:22:03 27 4
gpt4 key购买 nike

我有一个小类(在 32 位系统上为 16 个字节),我需要动态分配它。在大多数情况下,任何给定实例的生命周期都很短。一些实例也可能跨线程边界传递。

完成一些分析后,我发现我的程序似乎花费了更多的时间来分配和取消分配这些东西,而不是实际花费在使用它们上,所以我想用更高效的东西替换默认的 new 和 delete。

对于一个大对象(碰巧的数据库连接,构造起来比分配起来更昂贵),我已经在使用池系统,但是它涉及一个用于存储“空闲”对象的列表,以及一个互斥锁为了线程安全。在互斥量和列表之间,它实际上比小对象的基本 new/delete 表现更差。

我在谷歌上发现了一些小对象分配器,但是它们似乎使用了一个全局/静态池,它不是以线程安全的方式使用的,所以它们不适合我使用:(

对于此类小对象的高效内存管理,我还有哪些其他选择?

最佳答案

也许尝试使用 Google 的 tcmalloc ?它针对线程程序中的快速分配/取消分配进行了优化,并且对小对象的开销较低。

关于c++ - 高效地分配许多短命的小对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2156745/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com