问题标签 [hoard]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 囤积分配器不“工作”?
我试图囤积分配器来工作,但似乎没有。我有一个执行大量动态内存管理的基准应用程序。Hoard 和 glibc 内存管理器的执行时间是相同的。这让我怀疑我是否在做正确的事情。
我做的是...
我不应该链接到囤积分配器吗?什么路径(在 LD_PRELOAD 中)是否重要,或者我可以有任何路径吗?
我正在运行 Ubuntu 8.04 和 g++ 4.2.4
干杯
没有人知道任何 Linux 命令(例如 grep)来确定 Hoard 是否正确加载,以及是否使用了实际的分配器?
c - 静态链接 Hoard 内存分配器
有人知道如何将 libhoard 链接为 linux 中的静态库的文档吗?
c++ - 囤积 C++ 崩溃
我们正在尝试在我们的多线程应用程序中评估 Hoard,该应用程序可在 Windows 和 Mac OSX(Leopard、Snow Leopard)上运行。
我们使用 Boost、Curl、libJpeg 和 log4cplusplus 作为 3rd 方库。现在,我们将所有模块与 libhoard.dylib 链接,但让第 3 方库使用系统 malloc。
这会引起任何冲突吗?
我尝试通过在 info.plist DYLD_INSERT_LIBRARIES=libhoard.dylib 中设置(假设相当于 LD_PRELOAD)来使用整个应用程序,但在 malloc 跟踪中我没有看到囤积被拾起。
有没有其他方法可以链接它并使用,即使是第 3 方库也可以使用?请指教。
谢谢,拉贾。
c++ - C++ 内存分配器架构
我需要在 Linux 下为 C++ 编写 Hoard 分配器。虽然算法很简单,但我不明白,在哪里(以及如何)存储分配器数据(例如堆)
这就是我的看法:分配器不是一个进程,它是一组函数,任何应用程序都可以使用。每个应用程序都有自己的堆。
- 发生了什么,应用程序何时启动?
- 分配器如何发现堆已经创建?
- 分配器如何创建、存储和销毁(关闭应用程序时)堆?
- 当函数被调用时,如何找出它运行在哪个线程(或哪个处理器上)?
memory-management - 需要基本内存分配器信息 - Hoard 和 SLAB
最近我一直在阅读有关内存分配器的信息,例如 Hoard 和 SLAB。但是我没有得到一些东西:
一个。这些分配器是管理物理内存还是虚拟内存。{如果(你的答案是物理内存)请阅读点 b,否则,阅读点 c}
湾。如果他们管理物理内存,因为这两个分配器都使用每个 CPU 的数据结构,他们最终不会将同一物理页面的空间分配给不同的进程。例如,考虑 T1 在 CPU C 上启动并请求一个 int。在此之后,让 T1 被抢占,T2 开始执行,它还要求一个 int。由于我们的结构是每个 CPU 的,我们最终会不会同时满足来自同一物理页面的两个请求。
C。如果它们管理虚拟内存,那么为什么我们说所有数据结构都是每个 CPU 的,而不是我们应该说它们是每个进程的,因为在每次上下文切换时,我们都必须重新填充这些数据结构。
c - 分配大尺寸块时,囤积性能严重下降
我在“C”中编写了下面的示例程序,它是动态内存密集型的,并尝试对“glibc”默认分配器与 Hoard 分配器进行相同的基准测试(就所用时间而言)。
作为这个基准测试活动的结果,我得到了以下结果(块大小、默认分配器经过的时间、囤积的经过时间):
- '1K' '4.380s' '0.927s'
- '2k' '8.390s' '0.960s'
- '4k' '16.757s' '1.078s'
- '8k' '16.619s' '1.154s'
- '16k' '17.028s' '13m 6.463s'
- '32k' '17.755s' '5m 45.039s'
可以看出,Hoard 性能在块大小 >= 16K 时严重下降。是什么原因?我们可以说 Hoard 不适用于分配大块的应用程序吗?
c++ - 囤积腐败
当我启动与我编译的 libhoard.dll 链接的程序时,我在程序开始时收到一个堆损坏错误。堆栈跟踪指向 PatchMe() 方法,因此我附上了一张图片,以准确显示它在Stack Trace口吃的位置。奇怪的部分是,如果我按继续,则会处理异常并且程序继续工作。不确定这是否会导致我出现问题。有任何想法吗?谢谢
c++ - Hoard 中的 `bool c2s(int)` 是什么?
在Hoard(内存分配器)的geometrysizeclass.cpp 的源代码中,有一个未定义的函数。bool c2s(int)
它是什么,它有什么作用?
我正在尝试将hoard编译为VS2019中的库,忽略Makefile。